Bootstrap环境下如何在div中正确嵌入HTML代码?
解决Bootstrap环境下数据库HTML内容无法正常渲染的问题
这问题我太熟啦!你遇到的核心原因是Laravel Blade模板的自动转义机制:默认情况下,Blade的{{ $变量 }}语法会把HTML特殊字符(比如<、>)转义成实体字符,所以数据库里的HTML代码就被当成纯文本显示出来了——这和用Bootstrap还是Materialize其实没啥直接关系,只是之前用Materialize的时候没触发这个情况而已。
快速解决方法
把你模板里的代码从:
<div class="col-xs-12 col-md-12 col-lg-12"> <p>{{$content->content}}</p> </div>
改成:
<div class="col-xs-12 col-md-12 col-lg-12"> <p>{!! $content->content !!}</p> </div>
用{!! !!}代替{{ }},就能告诉Blade不要转义内容,直接渲染原始HTML。
重要安全提醒
不过这里要注意:如果$content->content是来自用户提交的内容(不是你自己后台录入的可信内容),直接用{!! !!}输出会有XSS攻击的风险!这种情况下,建议先对内容进行安全过滤,比如使用HTMLPurifier之类的工具清理掉不安全的HTML标签和属性,再进行输出。
内容的提问来源于stack exchange,提问作者Felipe Castillo
相关产品推荐
相关产品推荐

