我有一个字符串返回到我的一个视图,如下所示:
$text = '<p><strong>Lorem</strong> ipsum dolor <img src="images/test.jpg"></p>'
我正试图用Blade显示它:
{{$text}}
但是,输出是原始字符串而不是呈现的HTML。如何在Laravel 5中使用Blade显示HTML?
PS。 PHP echo()
正确显示HTML。
你需要使用
{!! $text !!}
使用{{ $text }}
时,该字符串将自动转义。
你可以用很多方式在laravel 5 ..
{!! $text !!}
{!! html_entity_decode($text) !!}
如果要逃避数据使用
{{ $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文档以获取此函数的参数
这适用于Laravel 5.6
<?php echo "$text"; ?>
以不同的方式
{!! $text !!}
它不会呈现HTML代码并以字符串形式打印。
欲了解更多详情,请打开链接: - Display HTML with Blade
如果条件如下,您可以使用三种方式首先使用
{!! $text !!}
这是第二种方式
<td class="nowrap">
@if( $order->status == '0' )
<button class="btn btn-danger">Inactive</button>
@else
<button class="btn btn-success">Active</button>
@endif
</td>
在刀片上使用三元运算符的第三种正确方法
<td class="nowrap">
{!! $order->status=='0' ?
'<button class="btn btn-danger">Inactive</button> :
'<button class="btn btn-success">Active</button> !!}
</td>
我希望第三种方法适用于刀片上使用的三元运算符。
对于在textarea中使用tinymce和markup的人:
{{ htmlspecialchars($text) }}
我去过那里,这是我的错。而且非常愚蠢。
如果你忘记了文件名中的.blade扩展名,那个文件不能理解刀片,而是运行php代码。你应该用
/resources/views/filename.blade.php
代替
/resources/views/filename.php
希望这对某人有所帮助
试试这个,它有效:
@php
echo $text;
@endphp
请用
{!! $test !!}
只有在HTML的情况下,如果你想渲染数据,刺痛等使用
{{ $test }}
这是因为编译刀片文件时
{{ $test }}
转换为<?php echo e($test) ?>
而
{!! $test !!}
被转换为<?php echo $test ?>
试试这个。它对我有用。
{{ html_entity_decode($text) }}
在Laravel Blade模板中,{{}}将转义为html。如果要在视图中显示控制器中的html,请从字符串解码html。
还有另一种方式。如果对象的目的是渲染html,你可以实现具有\Illuminate\Contracts\Support\Htmlable
方法的toHtml()
契约。
然后你可以像这样从刀片渲染该对象:{{ $someObject }}
(注意,不需要{!! !!}
语法)。
此外,如果你想返回html属性,你知道它将是html,使用\Illuminate\Support\HtmlString
类如下:
public function getProductDescription()
{
return new HtmlString($this->description);
}
然后像{{ $product->getProductDescription() }}
一样使用它。
当然在页面上直接渲染原始html时要负责。
您可以使用 {!! $ text !!}用于在Laravel中呈现HTML代码
{!! $text !!}
如果你使用
{{ $text }}
它不会呈现HTML代码并以字符串形式打印。
使用{!! $text !!}
to显示数据而不转义它。请确保您不使用来自用户的数据并且尚未清除的数据。
它很简单
{!! $text !!}
laravel编译为dom元素,{{$text}}
打印为字符串