我有一个字符串返回到我的一个视图,像这样:

$text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>'

我试图用Blade显示它:

{{$text}}

但是,输出是一个原始字符串,而不是呈现的HTML。我如何显示HTML与刀片在Laravel?

PS. PHP echo()正确显示HTML。


当前回答

对于拉拉维尔 5

{!!html_entity_decode($text)!!}

通过这个链接找到答案,见RachidLaasri的答案

其他回答

如果要转义数据使用

{{ $html }}

如果不想逃避数据使用

{!! $html !!}

但在laravel4之前你可以使用

{{ HTML::link('/auth/logout', 'Sign Out', array('class' => 'btn btn-default btn-flat')) }}

当谈到laravel5时

{!! HTML::link('/auth/logout', 'Sign Out', array('class' => 'btn btn-default btn-flat')) !!} 

您也可以使用PHP函数来实现这一点

{{ html_entity_decode($data) }}

通过PHP文档获取这个函数的参数

Html_entity_decode - php.net

你可以试试这个:

{!! $text !!}

你应该看看:http://laravel.com/docs/5.0/upgrade#upgrade-5.0

当您的数据包含HTML标记时,请使用

{!! $text !!}

当您的数据不包含HTML标记时,请使用

{{ $text }}

我去过那里,那是我的错。非常愚蠢的一个。

如果您忘记了文件名中的.blade扩展名,则该文件不理解blade,而是运行PHP代码。你应该使用

/resources/views/filename.blade.php

而不是

/resources/views/filename.php

希望这能帮助到一些人

试试这个。这对我很管用。

{{ html_entity_decode($text) }}

在Laravel Blade模板中,{{}}将转义html。如果你想在视图中显示来自控制器的html, decode html from string。