我希望能够在从我的数据库加载Eloquent模型时运行一些代码。 fill()
似乎不是正确的方法,因为当我从查询中加载get对象时,它不是代码。
我希望我的对象有一些复杂的属性,这些属性当前表示为公共属性,在保存时保持为JSON,我需要在从数据库加载时恢复它们。
Laravel:5.6
答案 0 :(得分:1)
您正在寻找的事件是retrieved
,尽管在laravel
文档中提到过,
与其他事件相比不是很明显,你可以像这样做或将它委托给观察者类:
Model::retrieved(function(Model $model) {
$model->foo = json_decode($this->json)['foo']; // '{"foo":"bar"}'
})
(是的,此事件在从数据库中检索后,但在您的其他代码之前运行)