Laravel 5:用刀片显示HTML

我有一个string返回到我的意见之一,像这样:

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

我试图用刀片显示它:

 {{$text}} 

但是,输出是一个原始string,而不是呈现的HTML。 如何在Laravel 5中显示带有刀片的HTML?

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

    你需要这样做

     {!! $text !!} 

    当您执行{{}}时,string会自动转义

    你可以试试这个:

     {!! $text !!} 

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

    对于laravel 5

     {!!html_entity_decode($text)!!} 

    通过这个链接找出来,参见RachidLaasri的答案

    尝试这个。 它为我工作。

     {{ html_entity_decode($text) }} 

    在Laravel Blade模板中,{{}}将会转义html。 如果你想在控制器中显示html,请从string解码html。

    请用

     {!! $test !!} 

    只有在html的情况下,而如果你想渲染数据,刺等使用

     {{ $test }} 

    这是因为当你的刀片文件被编译

     {{ $test }} is converted to <?php echo e($test) ?> 

     {!! $test !!} is converted to <?php echo $test ?> 

    还有另一种方法。 如果对象的目的是呈现html,您可以实现具有toHtml()方法的\Illuminate\Contracts\Support\Htmlable契约。

    然后你可以像这样从刀片渲染这个对象: {{ $someObject }} (注意,不需要{!! !!}语法)。

    另外,如果你想返回HTML属性,你知道它将是HTML,使用\Illuminate\Support\HtmlString类是这样的:

     public function getProductDescription() { return new HtmlString($this->description); } 

    然后像{{ $product->getProductDescription() }}一样使用它。

    当然,直接在页面上呈现原始html负责。

    如果你想逃避数据使用

     {{ $html }} 

    如果不想逃避数据使用

     {!! $html !!} 

    但是,直到Laravel-4你可以使用

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

    什么时候来到Laravel-5

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

    你也可以用PHP函数做到这一点

     {{ html_entity_decode($data) }} 

    通过PHP文档查看这个函数的参数

    html_entity_decode – php.net

    在Php Laravel在HTML页面中显示$ test数据: –

     {{ $test }} 

    用不同的方式

     <? $test ?> 

    $数据=用户::其中( '编号',1) – >第一();

    在刀片页面中,

    名称:{{$ data-> name}}