Laravel 5:使用Blad显示HTML
我有一个字符串返回到我的一个视图,如下所示:
$text = '
Lorem ipsum dolor
'我正试图用Blade显示它:
{{$text}}
但是,输出是原始字符串而不是呈现HTML。 如何在Laravel 5中使用Blade显示HTML?
PS。 PHP echo()正确显示HTML。
15个解决方案
424 votes
你需要这样做
{!! $text !!}
执行{{}}时,字符串将自动转义
terry low answered 2019-03-30T04:38:07Z
45 votes
对于laravel 5
{!!html_entity_decode($text)!!}
通过此链接计算出来,请参阅RachidLaasri的回答
Praveen Dabral answered 2019-03-30T04:39:00Z
32 votes
你可以试试这个:
{!! $text !!}
你应该看看:[http://laravel.com/docs/5.0/upgrade#upgrade-5.0]
rap-2-h answered 2019-03-30T04:39:44Z
12 votes
请用
{!! $test !!}
只有在HTML的情况下,如果你想渲染数据,刺痛等使用
{{ $test }}
这是因为编译刀片文件时
{{ $test }}已转换为{!! $test !!}而
{!! $test !!}已转换为<?php echo $test ?>
Shubham Bansal answered 2019-03-30T04:41:05Z
7 votes
试试这个。 它对我有用。
{{ html_entity_decode($text) }}
在Laravel Blade模板中,{{}}将转义为html。 如果要在视图中显示控制器中的html,请从字符串解码html。
Mohammed Safeer answered 2019-03-30T04:42:00Z
6 votes
还有另一种方式。 如果对象的目的是渲染html,你可以实现具有{!! !!}方法的{{ $product->getProductDescription() }}合同。
然后你可以像这样从刀片渲染该对象:{{ $product->getProductDescription() }}(注意,不需要{!! !!}语法)。
此外,如果你想返回html属性,你知道它将是html,使用{{ $product->getProductDescription() }}这样的类:
public function getProductDescription()
{
return new HtmlString($this->description);
}
然后像{{ $product->getProductDescription() }}一样使用它。
当然在页面上直接渲染原始html时要负责。
Damir Miladinov answered 2019-03-30T04:43:57Z
4 votes
您可以使用 {!! $ text !!}用于在Laravel中呈现HTML代码
{!! $text !!}
如果你使用
{{ $text }}
它不会呈现HTML代码并以字符串形式打印。
PPL answered 2019-03-30T04:44:32Z
2 votes
使用{!! $text !!}显示数据而不转义它。 请确保您不使用来自用户的数据并且尚未清除的数据。
Patrick Luy answered 2019-03-30T04:45:00Z
1 votes
如果要逃避数据使用
{{ $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
Reiah Paul Sam answered 2019-03-30T04:46:08Z
0 votes
它很简单
{! $ text !!}
laravel编译为dom元素,{{$ text}}打印为字符串
Ravindra Bhanderi answered 2019-03-30T04:46:47Z
0 votes
这适用于Laravel 5.6
以不同的方式
{!! $text !!}
它不会呈现HTML代码并以字符串形式打印。
有关详细信息,请打开链接: - 使用Blade显示HTML
Udhav Sarvaiya answered 2019-03-30T04:47:29Z
0 votes
对于在textarea中使用tinymce和markup的人:
{{ htmlspecialchars($text) }}
Hung answered 2019-03-30T04:47:55Z
0 votes
如果条件如下,您可以使用三种方式首先使用
{!! $text !!}
这是第二种方式
@if( $order->status == '0' )
Inactive
@else
Active
@endif
在刀片上使用三元运算符的第三种正确方法
{!! $order->status=='0' ?
'Inactive :
'Active !!}
我希望第三种方法适用于刀片上使用的三元运算符。
Uzair answered 2019-03-30T04:48:44Z
-1 votes
我去过那里,这是我的错。 而且非常愚蠢。
如果你忘记了文件名中的.blade扩展名,那个文件不能理解刀片,而是运行php代码。 你应该用
/resources/views/filename.blade.php
代替
/resources/views/filename.php
希望这对某人有所帮助
Ali Aydin answered 2019-03-30T04:49:27Z
-1 votes
在PHP Laravel中,在HTML页面中显示$test数据:
{{ $test }}
以不同的方式
HeadAndTail answered 2019-03-30T04:50:01Z