Не удалось восстановить красноречивую модель после того, как она не была сериализована (Laravel 5.4) - PullRequest
0 голосов
/ 29 февраля 2020

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

Я пытаюсь восстановить предыдущие версии «документа», представленного моделью App\Document. Перед обновлением каждой модели документа предыдущая «версия» сериализуется и сохраняется в другой таблице, чтобы ее можно было извлечь в будущем.

Когда я получаю сериализованную модель и не сериализую ее (unserialize ()) Я вызываю метод save () для модели, но ничего не происходит.

Код:

$targetModel = unserialize($serializedModel);                       
$modelSaved = $targetModel->save();

$modelSaved всегда имеет значение true, но строка в таблице базы данных не изменяется.

Посмотрев на API, я увидел, что когда мы вызываем save () для модели, обновляется только если модель существует и dirty.

Обратите внимание, что если я ' dump 'the $targetModel, свойства attributes и original одинаковы, и вызов isDirty() возвращает false.

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

Есть идеи, как мне сохранить несериализованную модель в базе данных? Я, конечно, здесь что-то делаю не так.

...