从数据库表中呈现HTML以查看刀片问题

时间:2016-06-20 17:51:40

标签: php laravel-5

通过从数据库表中呈现一些html内容我遇到了问题。我有一个函数调用并从数据库表返回一些html内容,当我使用{{}}双花括号时,它显示页面上的内容,但作为纯文本未呈现为html。我试着用{!! !!}它没有在页面上显示任何内容。我不明白为什么以及在这种情况下解决方案是什么。我的刀片页面也包含.blade扩展名。

请建议。

$string = "<h1>Its H1 Tag</h1>;

{{ $string }}

2 个答案:

答案 0 :(得分:8)

显示未转义数据

默认情况下,Blade {{}}语句会自动通过PHP的htmlentities函数发送,以防止XSS攻击。如果您不希望转义数据,可以使用以下语法:

  

你好,{!! $ name !!}。

如果以上不起作用,请使用以下但不是良好做法 -

在您的情况下您可以对数据使用 htmlentities($ string) html_entity_decode($ string),然后使用 {{$ string}} 来渲染html。

答案 1 :(得分:2)

对于Laravel 5.6。*或更高版本,请使用单个Curley大括号

$string = "<h1>Its H1 Tag</h1>;

{!! $string !!}