Laravel Blade匿名组件传递对象类型属性被自动转为字符串问题
Blade匿名组件传递对象属性的解决方案
问题原因
你当前使用的普通属性赋值语法object="xxx"会被Blade解析为字符串类型,因此传入的对象会被自动转为字符串输出,无法保留原有对象结构。
解决方法
在需要传递PHP变量/表达式的属性名前加冒号:前缀,告诉Blade该属性值需要作为PHP表达式解析,不要直接当成字符串处理:
<!-- 正确调用写法,$object为你要传递的对象变量 --> <x-component :object="$object" />
补充说明
- 该写法支持传递所有PHP支持的类型,包括对象、数组、布尔值、数值、实时计算的PHP表达式等,比如
:user="User::query()->first()"也是合法写法 - 如果在组件中需要直接输出整个对象,需要确保对应对象类实现了
__toString()魔术方法,否则直接写{{ $object }}会抛出语法错误;如果是调试场景,可以在组件中使用dd($object)直接打印对象结构验证传递结果
内容的提问来源于stack exchange,提问作者Mohamed Essam
相关产品推荐
相关产品推荐

