Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Laravel Cast数组中的字段检索值_Laravel_Casting - Fatal编程技术网

从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\”}”
中有编码。我的本地数据库中的类似值不包含反斜杠(可能您在存储时在某个点进行了双重编码?)