我有一个字符串返回到我的一个视图,像这样:
$text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>'
我试图用Blade显示它:
{{$text}}
但是,输出是一个原始字符串,而不是呈现的HTML。我如何显示HTML与刀片在Laravel?
PS. PHP echo()正确显示HTML。
我有一个字符串返回到我的一个视图,像这样:
$text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>'
我试图用Blade显示它:
{{$text}}
但是,输出是一个原始字符串,而不是呈现的HTML。我如何显示HTML与刀片在Laravel?
PS. PHP echo()正确显示HTML。
当前回答
请使用
{!! $test !!}
只有在HTML的情况下,而如果你想呈现数据,sting等使用
{{ $test }}
这是因为在编译刀片文件时
{{$test}}被转换为<?PHP echo e($test) 而
{! !美元的测试! !}被转换为<?PHP echo $test ?>
其他回答
如果要转义数据使用
{{ $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
对于拉拉维尔 5
{!!html_entity_decode($text)!!}
通过这个链接找到答案,见RachidLaasri的答案
{! !!!不安全。
阅读此处:https://laravel.com/docs/5.6/blade#displaying-data
你可以试试:
@php
echo $variable;
@endphp
请使用
{!! $test !!}
只有在HTML的情况下,而如果你想呈现数据,sting等使用
{{ $test }}
这是因为在编译刀片文件时
{{$test}}被转换为<?PHP echo e($test) 而
{! !美元的测试! !}被转换为<?PHP echo $test ?>
你可以试试这个:
{!! $text !!}
你应该看看:http://laravel.com/docs/5.0/upgrade#upgrade-5.0