取消序列化后,无法恢复雄辩的模型(Laravel 5.4)

时间:2020-02-29 14:08:40

标签: php laravel-5 serialization

我不明白为什么无法在数据库表中保存未序列化的雄辩模型。

我正在尝试还原由App\Document模型表示的“文档”的先前版本。在更新每个文档模型之前,会将先前的“版本”序列化并存储在不同的表中,以便将来可以对其进行检索。

当我检索序列化的模型并对其进行反序列化(unserialize())时,我正在模型上调用save()方法,但是什么也没有发生。

代码:

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

$modelSaved始终为true,但数据库表中的行不会更改。

在查看了API之后,我看到当我们在模型上调用save()时,只有模型存在且为dirty时,才会进行更新。

请注意,如果我“转储” $targetModel,则属性attributesoriginal是相同的,对isDirty()的调用将返回false。 / p>

我还尝试过修改未序列化模型的属性,以使isDirty()返回true,但未做任何更改。

关于如何将未序列化的模型保存到数据库中的任何想法?我肯定在这里做错了。

0 个答案:

没有答案