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

Laravel从MongoDB集合获取指定字段时出现htmlspecialchars错误

解决Laravel中MongoDB嵌套字段读取的htmlspecialchars错误

先来说说你遇到的问题:你在视图里写的{{$content[] = $value->Information }}这行代码是罪魁祸首。Blade模板里的{{ }}语法会自动调用htmlspecialchars()来转义输出内容,而你这里是把$value->Information这个对象/数组赋值给$content数组,同时还把赋值的结果(也就是这个嵌套对象)直接输出了——htmlspecialchars()只能处理字符串,遇到对象自然就报错了。

而且根本不需要额外定义$content数组来循环,因为你要的只是Information里的email字段,直接访问嵌套属性就可以了。

正确的视图代码

把你的视图代码改成这样:

@foreach ($data as $value)
    <h1>{{ $value->name }}</h1>
    <h2>{{ $value->Information->email }}</h2>
@endforeach

为什么这样能解决问题?

根据你提供的存储代码,Information是一个嵌套对象(你存的时候用了数组转对象的写法),所以在Laravel读取MongoDB文档时,它会被解析成一个PHP对象,直接通过->就能访问里面的email属性,完全不需要额外的循环操作。

如果你的MongoDB驱动把嵌套结构解析成了数组(这种情况也可能出现),那你可以用数组下标访问:

<h2>{{ $value->Information['email'] }}</h2>

这样修改后,就只会输出字符串类型的name和email值,htmlspecialchars()就能正常处理,不会再报错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:30:07