Laravel JSON 到数组转换

Laravel JSON to Array Casting

有什么原因 eloquent $casts 不能工作吗?

我正在存储 json、json 列类型和

protected $casts = [
    'fields' => 'array'
];

但是..

\App\Lead::find(1)->fields

还是returnsjson

"{"first_name":"Brian","last_name":"Dillingham","email":"brian@gmail.com"}"

当我变异时甚至不起作用

public function getFieldsAttribute($value)
{
    return json_decode($value, true);
}

但当我

时有效
dd(json_decode(\App\Lead::find(1)->fields, true));

只需从您的增变函数中输入强制转换即可:

public function getFieldsAttribute($value)
{
    return (array) json_decode($value, true);
}