我有以下json
[{
"date": "2011",
"content": "<p>Hello world?</p>"
},
{
"date": "2012",
"content": "<p><strong>Hello again</strong></p>"
}]
我的控制器
public function index() {
$data['json'] = json_decode(file_get_contents('location_of_json_file.json'));
return view('index', $data);
}
我的观点有
@foreach ($json as $a)
{{ $a->content }}
@endforeach
但我得到的是
<p>Hello world?</p>
<p><strong>Hello again</strong></p>
如何让它解析html代码而不是显示语法?我已经尝试htmlentities
和html_entity_decode
了。我在代码的不同位置试图json_encode
,我迷失了。请帮忙。
答案 0 :(得分:1)
Blade输出标签在Laravel 4和Laravel 5之间发生了变化。您正在寻找:
{!! $a->content !!}
在Laravel 4中,{{ $data }}
将按原样回显数据,而{{{ $data }}}
将在通过htmlentities运行后回显数据。
但是,Laravel 5对其进行了更改,以便{{ $data }}
在运行htmlent之后回显数据,新语法{!! $data !!}
将按原样回显数据。
文档here。
答案 1 :(得分:1)
在Laravel 5中,默认情况下{{ ... }}
将使用htmlentities
转义输出。要输出得到解释的原始HTML,请使用{!! ... !!}
:
@foreach ($json as $a)
{!! $a->content !!}
@endforeach
Here's a comparison between the different echo brackets and how to change them