Как получить информацию о восстановлении данных в модели Laravel Eloquent? - PullRequest
0 голосов
/ 22 мая 2018

Я хотел бы иметь возможность запускать некоторый код, когда модель Eloquent загружается из моей базы данных.fill() не кажется правильным методом, так как это не код, когда я загружаю, получаю свой объект из запроса.

Контекст aka"почему кто-то хочет сделать это"

Я хочу, чтобы у моего объекта были некоторые сложные атрибуты, которые в настоящее время представлены в виде открытых свойств, сохраняются как JSON при сохранении, и мне нужно восстановить их при загрузке из базы данных.

Laravel: 5.6

1 Ответ

0 голосов
/ 22 мая 2018

Событие, которое вы ищете - retrieved, хотя упомянутое в документации laravel, не очень очевидно по сравнению с другими событиями, вы можете сделать это так или делегировать его классу наблюдателя:

Model::retrieved(function(Model $model) {
    $model->foo = json_decode($this->json)['foo']; // '{"foo":"bar"}'
})

(и да, это событие запускается после его извлечения из базы данных, но перед другим вашим кодом)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...