我的模特
class Subscriber extends Model
{
protected $casts = [
'filters' => 'object'
];
}
修补:
$s = App\Subscriber::first();
$s->filters
// prints serialized json:
// ""{\"maxHyra\":\"8000\",\"minAntalRum\":\"2\",\"Ungdom\":\"true\",\"Student\":\"true\",\"Korttid\":\"true\",\"Bostadssnabben\":\"true\",\"_token\":\"0Y2f3eAl27ikrujvw7VBWNOaNXxchygaFUDSo4s4\"}""
json_decode($s->filters)
// prints a neat php object.
所以显然我在属性中的数据很好,并且json_decode有效。但是类型转换无法正常工作。我也尝试了访问器,但没有成功。
最佳答案
$casts
可以双向进行插入和检索。无需先使用json_encode
自己将数组转换为字符串。 Laravel在$casts
数组中时会执行。
例如:
模型样本:
protected $casts = ['ext' => 'object'];
SampleController:
App\Sample::create([
'ext'=>['hello'=>'world']
])