软删除嵌套的子项

时间:2018-04-17 09:06:43

标签: orm nested fuelphp

我有一个名为'Model_Announcement'的模型,它扩展了Model_Soft,另一个名为'Model_Announcement_Comment'的模型扩展了Model_Nestedset。

他们之间的关系是: Model_Announcement:

protected static $_has_many = array(
  'comments' => array(
   'key_from' => 'id',
   'model_to' => 'Model_Announcement_Comment',
   'key_to' => 'announcement_id',
   'cascade_save' => true,
   'cascade_delete' => true,
  ),
);

Model_Announcement_Comment:

protected static $_belongs_to = array('user', 'announcement');

创建评论工作正常但删除公告会抛出'Orm \ RelationNotSoft'错误,因为公告评论是嵌套模型而不是软。

关于如何使这项工作的任何想法?

提前谢谢

1 个答案:

答案 0 :(得分:0)

Model_Announcement_Comment还需要扩展Model_Soft Model_Nestedset)才能实现此功能。这在文档中说明。

  

删除功能将软删除相关模型,前提是cascade_delete为true。如果相关模型也不是软删除,则抛出RelationNotSoft异常。

https://fuelphp.com/docs/packages/orm/model/soft.html#/relations