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

Laravel中Eloquent查询的null值属性在Blade中被转为空字符串问题排查

问题原因

这个现象是Blade输出语法的默认处理逻辑和PHP隐式类型转换共同导致的:

  • Blade的{{ }}标签的核心作用是输出转义后的字符串内容,所有传入该标签的变量都会被自动转为字符串类型
  • PHP原生的类型转换规则中,null值转换为字符串时的结果就是空字符串''

你在控制器日志中拿到的是PHP运行环境中变量的原始类型值,而Blade渲染输出到前端HTML/JS代码时已经完成了类型转换,所以最终JS读取到的是空字符串。

修复方案

如果要在JavaScript中正确保留原始的null类型,直接使用Blade提供的@json指令输出变量即可,无需手动用引号包裹,该指令会自动把PHP变量转换为符合JSON规范的格式,类型会自动对应:
把你Blade中的JS代码替换为如下内容:

<script type="application/javascript">
    console.log(@json($p['ticket_flow_id']));
    var typee = @json($p['ticket_flow_id']);
    console.log(typeof typee);
</script>

调整后当ticket_flow_id为null时,渲染到前端的JS代码会直接输出null,不会被转为空字符串,类型判断也会符合预期。

额外说明

如果确实需要使用{{ }}语法输出,也可以通过三元判断做兼容处理:

var typee = {{ $p['ticket_flow_id'] === null ? 'null' : "'".$p['ticket_flow_id']."'" }};

不过该方案需要手动处理多种类型的兼容,更推荐优先使用@json指令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:36:03