2015-02-17 33 views
20

'da nl2br() öğesini nasıl kullanırım? Blade Şablon Altyapısı'nı kullanırken linebreaks'ı veritabanından korumak istiyorum. Ben bu fikir üzerindeLaravel 5 Blade

kullanarak ortaya çıktım. Ama gereksiz karmaşık bir çözüm gibi görünüyor. Daha iyi bir yolu var mı?

cevap

20

Düzenli içerik etiketleri{{ ... }} ile kullanılacak kendi "echo biçimini" tanımlayabilirsiniz.

{{ $task->text }} 
:

public function boot(){ 
    \Blade::setEchoFormat('nl2br(e(%s))'); 
} 

Şimdi sadece normal eko etiketleri kullanabilirsiniz: varsayılan biçim e(%s) bir servis sağlayıcı içinde ki biçim çağrısı setEchoFormat() değiştirmek için

(sprintf biçimlendirmeyi uygulamak için kullanılır) olduğu Eğer nl2br() uygulanan istemiyoruz Yankılanmayı için

, kullanmak üçlü parantez {{{ ... }}}


etrafında (üçlü ve çift) parantez işlevini değiştirmek için şunu yapın: Müthiş

\Blade::setContentTags('{{{', '}}}'); 
\Blade::setEscapedContentTags('{{', '}}'); 
+0

! Takas etmenin bir yolu var mı? Nl2br için sadece üçlü parantez mi kullanıyorsunuz? – jascha

+0

Elbette. Düzenlenen cevaba bakınız. – lukasgeiter

+0

Harikasınız. Çok teşekkürler. – jascha