代码之家  ›  专栏  ›  技术社区  ›  Andreas

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

  •  0
  • Andreas  · 技术社区  · 6 年前

    我无法理解为什么一个未序列化的雄辩模型不能保存在数据库表中。

    我正在尝试恢复由 App\Document 模型在更新每个文档模型之前,之前的“版本”将被序列化并存储在不同的表中,以便将来可以检索。

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

    代码:

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

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

    看了API之后,我发现当我们在模型上调用save()时,只有当模型存在且 dirty 将被更新。

    请注意,如果我“甩”了 $targetModel 财产 attributes original 都是一样的 isDirty() 返回 false .

    我还尝试修改未序列化模型的一个属性,以便 isDirty() 返回true,但这并没有改变任何事情。

    关于如何在数据库中保存未序列化的模型,有什么想法吗?我肯定是做错了什么。

    0 回复  |  直到 6 年前
    推荐文章