laravel 分析html,Laravel 5:使用Blad显示HTML

Laravel 5:使用Blad显示HTML

我有一个字符串返回到我的一个视图,如下所示:

$text = '

Lorem ipsum dolor test.jpg

'

我正试图用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值