byhk44 Laravel dokümanlarını gezerken preg_replace_array gördüm bu konu aklıma geldi. Laravel özelliği kullanılarak şu şekilde de yapılabilir:
public function getCompiled(string $key, array $data, string $pattern = '/{{([a-z0-9_]+)}}/'): string
{
return preg_replace_array($pattern, $data, $this->attributes[$key]);
}
Diğer bir nokta da eğer sözleşmeyi HTML olarak kullanmak isterseniz sözleşmeyi veritabanında Github markdown formatında tutabilirsiniz (Siz ** kullanmışsınız ama markdown kullanıp kullanmadığınızdan emin olamadım). Şu şekilde markdown olarak tuttuğunuzda:
## Madde 1 - Sözleşmenin Tarafları
### ALICI:
{{musteri_adi}}
{{musteri_adresi}}
.....
## Madde 2 - Sözleşmenin Konusu
İşbu sözleşmenin konusu, Alıcının Satıcıya ait....
$body = $sozlesme->getCompiled('mesafeli_satis_sozlesmesi', [
'musteri_adi' => 'Ahmet Cemil',
'musteri_adresi' => 'Bâb-ı Âli, İstanbul',
]);
return view('sozlesme', [
'body' => Str::markdown($body)
])
<h2>Madde 1 - Sözleşmenin Tarafları</h2>
<h3>ALICI:</h3>
<p>Ahmet Cemil</p>
<p>Bâb-ı Âli, İstanbul</p>
<p>.....</p>
<h2>Madde 2 - Sözleşmenin Konusu</h2>
<p>İşbu sözleşmenin konusu, Alıcının Satıcıya ait....</p>
şeklinde HTML elde edebilir ve şablon içinde {!! $body !!}
şeklinde kullanabilirsiniz.