2015-02-17 2 views
20

Так что я хочу сохранить линейные разрывы из базы данных при использовании Blade Template Engine. Я придумал эту идею, используяКак использовать nl2br() в Laravel 5 Blade

{!! nl2br(e($task->text)) !!} 

Это работает. Но это выглядит как бесполезно сложное решение. Есть ли способ лучше?

ответ

20

Вы можете определить свой собственный «формат эха», который будет использоваться с обычными тегами контента {{ ... }}. Формат по умолчанию e(%s) (sprintf используется, чтобы применить форматирование)

Чтобы изменить этот формат вызова setEchoFormat() внутри поставщика услуг:

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

Теперь вы можете просто использовать обычные эхо-метки:

{{ $task->text }} 

Для эху вы не хотите nl2br() применяется, используйте тройные скобки {{{ ... }}}


Для включения функции скобок (тройных и двойных) вокруг, сделайте следующее:

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

Отлично! Есть ли способ поменять его? Используя только тройные скобки для nl2br? – jascha

+0

Несомненно. См. Отредактированный ответ. – lukasgeiter

+0

Ты потрясающий. Большое спасибо. – jascha

Смежные вопросы