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

jas*_*cha 26 nl2br blade laravel-5

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

{!! nl2br(e($task->text)) !!}
Run Code Online (Sandbox Code Playgroud)

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

luk*_*ter 25

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

setEchoFormat()在服务提供者中更改该格式调用:

public function boot(){
    \Blade::setEchoFormat('nl2br(e(%s))');
}
Run Code Online (Sandbox Code Playgroud)

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

{{ $task->text }}
Run Code Online (Sandbox Code Playgroud)

对于您不想nl2br()应用的回声,请使用三重括号{{{ ... }}}


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

\Blade::setContentTags('{{{', '}}}');
\Blade::setEscapedContentTags('{{', '}}');
Run Code Online (Sandbox Code Playgroud)

  • 相关回答的问题对我有帮助:http://stackoverflow.com/a/28027358/1331425 (4认同)

lin*_*lin 8

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

{!! nl2br(e($task->text)) !!}
Run Code Online (Sandbox Code Playgroud)

  • 这正是问题中所写的:D (8认同)

Kam*_*esh 6

以下解决方案适用于Laravel 5.7 版本的 Blade 文件:

{!! nl2br(e($contactusenquiry_message), false) !!}
Run Code Online (Sandbox Code Playgroud)

谢谢你提出这个问题。