如何在Laravel 5 Blade中使用nl2br()

问题描述 投票:25回答:2

因此,我希望在使用刀片模板引擎时保留数据库中的换行符。我想出了这个想法

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

有用。但它看起来像一个不必要的复杂解决方案。有没有更好的办法?

blade laravel-5 nl2br
2个回答
25
投票

您可以定义自己的“回声格式”,它将与常规内容标签{{ ... }}一起使用。默认格式为e(%s)sprintf用于应用格式)

要更改该格式,请在服务提供商内部调用setEchoFormat()

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

现在你可以使用普通的echo标签:

{{ $task->text }}

对于你不希望应用nl2br()的回声,使用三重括号{{{ ... }}}


要切换括号(三重和双重)的功能,请执行以下操作:

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

4
投票

简单的方法适用于Laravel 4 + Laravel 5。

{!! nl2br(e($task->text)) !!}
© www.soinside.com 2019 - 2024. All rights reserved.