我有一个正在尝试的JSON字段,但遇到了一些麻烦。
我在Customer
模型中添加了以下内容:
protected $casts = [
'billingConfig' => 'array'
];
然后我在控制器中使用以下内容更新了测试字段:
$customer->billingConfig = ['attachableType' => $request->attachmentsConfig];
$customer->save();
此后,以下内容出现在我的数据库中:
{"attachableType": "combined"}
现在,当我通过刀片抓取这个特定值时:
{{$customer->billingConfig->attachableType}}
我得到“试图获取非对象的属性'attachableType'”
但是当我使用以下内容时:
{{$customer->billingConfig['attachableType']}}
我得到了想要的“组合”值。
我使用的是本指南:https://www.qcode.in/use-mysql-json-field-in-laravel/,我想我想确保自己做的所有事情都正确无误,而他们的方法是错误的,或者是我在某个地方犯了错误。
答案 0 :(得分:0)
JSON数据字段被读取为一个数组,您不能为其调用属性,这就是我认为调用该错误时会出现的原因
{{$customer->billingConfig->attachableType}}
因为它是一个数组,而不是数据对象(例如javascript中的情况)。
感谢分享。