从Laravel Cast数组中的字段检索值
我有一个名为从Laravel Cast数组中的字段检索值,laravel,casting,Laravel,Casting,我有一个名为settings的表,其中有几个列,id,company\u id,key,value 在我设置的Laravel模型中,我有以下演员阵容: protected $casts = [ 'value' => 'array', ]; 但是当我去检索已经存储的数据时,我不能 例如,我有一个具有以下值的记录:“{\”默认汇款地址\“:\”2395\“}” 当我在Blade中检索记录时,它确实会正确地将其拉起,但我不确定如何从值字段中获取特定值(如默认的汇款地址) 如果我直接在B
settings
的表,其中有几个列,id
,company\u id
,key
,value
在我设置的Laravel模型中,我有以下演员阵容:
protected $casts = [
'value' => 'array',
];
但是当我去检索已经存储的数据时,我不能
例如,我有一个具有以下值的记录:“{\”默认汇款地址\“:\”2395\“}”
当我在Blade中检索记录时,它确实会正确地将其拉起,但我不确定如何从值
字段中获取特定值(如默认的汇款地址)
如果我直接在Blade中打印return“{{{$settings->value}}”
,我会得到以下结果:
{“默认汇款地址”:“2395”}
那么我如何才能更深入一层呢?当这个json对象被转换为
数组时,您可以使用常规数组语法来访问它的内容
$default_remit_address = Settings::find(1)->value['default_remit_address'];
或者在您的刀片模板中
{{ $settings->value['default_remit_address'] }}
如果我像上面那样做,我会得到以下错误:非法的字符串偏移量“default\u remote\u address”,你能建议我可能缺少什么吗?嗯,是迁移使用$table->json('value')
创建的值列吗?我很怀疑,因为您的字符串“{\”默认汇款地址\“:\“2395\”}”
中有编码。我的本地数据库中的类似值不包含反斜杠(可能您在存储时在某个点进行了双重编码?)