Eğer isterseniz ckeditor içerisindeki config.js dosyasından karakterlerin HTML'ye çevrilmesine engel olabilirsiniz. Böylece html_entity_decode kullanmanıza gerek kalmaz (ayrıca veritabanında kapladığı yeri ve post boyutunu da azaltmış olursunuz, dönüştürme işlemlerinden de kurtulursunuz)
// ckeditor/config.js
CKEDITOR.editorConfig = function (config) {
// diğer ayarlar...
config.entities = false;
}
Eskisi gibi entities dönüştürmesi ile çalışmaya devam etmek isterseniz ama html_entity_decode kullanmaktan kurtulmak isterseniz
icerik alanı için
icerik alanının ait olduğu
model dosyanızda
accessor ya da
mutator tanımlayabilirsiniz:
(Bilgi için:
https://laravel.com/docs/5.4/eloquent-mutators#accessors-and-mutators)
// Eğer veriyi HTML'ye çevirip tutacaksanız ama çıktı yaparken otomatik html_entity_decode yapılsın istiyorsanız
// accessor kullanabilirsiniz. icerik ekrana basılırken otomatik html_entity_decode uygulanarak basılacak:
public function getIcerikAttribute($value)
{
return html_entity_decode($value);
// ya da return html_entity_decode($this->icerik);
}
// CKEditor'de entities açık olup veriyi veritabanına kaydederken html_entity_decode uygulayıp dönüştürülmemiş HTML tutacaksanız
// mutator kullanabilirsiniz. icerik veritabanına kaydedilirken otomatik html_entity_decode uygulanarak kaydedilecek.
public function setIcerikAttribute($value)
{
$this->attributes['icerik'] = html_entity_decode($value);
}
Bana göre en ideali config.entities = false; ile CKEditor içerisinden dönüştürmeyi iptal etmek.
Bu arada @php direktifini değişken atamarında şu şekilde kullanabilirsiniz (ki mecbur kalmadıkça şablonlarda bu tür işlemlerden kaçının):
@php($icerik = html_entity_decode($detay["icerik"]))