You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel控制器返回HTML内容显示为纯文本的问题求助

解决Laravel中返回HTML被转义为纯文本的问题

我刚好碰到过一模一样的情况!这是Laravel默认的安全机制在生效——为了防范XSS攻击,框架会自动把输出内容里的特殊字符(比如<、")转成HTML实体,导致你写的checkbox、label标签直接以纯文本形式显示,没法正常渲染。

针对你代码里的场景(看起来是用Laravel DataTables构建表格),只需要在你的表格构建链最后加上rawColumns方法,指定哪些列需要跳过转义、直接渲染HTML即可:

->addColumn('mass_delete', function ($row) {
    return '<input type="checkbox" class="row-select" value="' . $row->id .'">';
})
->editColumn('installation_status', function ($row) {
    return ($row->installation_status) ? "<span class='label bg-green'>Required</span>" : "<span class='label bg-red'>Not Required</span>";
})
// 关键:指定不需要转义的列名
->rawColumns(['mass_delete', 'installation_status'])

如果是在Blade视图里直接输出这些HTML内容,那要把常规的双大括号{{ }}换成{!! !!},后者会跳过自动转义:

{!! $massDeleteColumn !!}
{!! $installationStatusColumn !!}

⚠️ 注意:一定要确保这些HTML内容是你自己生成的、安全可靠的(不是用户输入的内容),不然关闭转义可能会引入XSS安全风险。

内容的提问来源于stack exchange,提问作者user7528557

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 11:42:32