Orm Fuelphp保存删除关系,观察者在\u更新之前调用,但不是在\u删除之前调用

Orm Fuelphp保存删除关系,观察者在\u更新之前调用,但不是在\u删除之前调用,orm,fuelphp,Orm,Fuelphp,我有一个观察者,他有很多这样的关系: Post has_many Comments $post = Post::find(1)->related('comments); unset($post->comments[1]); $post->save(); 并且注释激活了以下观察者: class Observer_Comments { public function before_delete($model) { Log::info("Delet

我有一个观察者,他有很多这样的关系:

Post has_many Comments
$post = Post::find(1)->related('comments);
unset($post->comments[1]);
$post->save();
并且
注释
激活了以下
观察者

class Observer_Comments
{
    public function before_delete($model)
    {
        Log::info("Deleted a comment");
    }
    public function before_update($model)
    {
        Log::info("Updated a comment");
    }
}
当我更新我的
Post
模型时,如下所示:

Post has_many Comments
$post = Post::find(1)->related('comments);
unset($post->comments[1]);
$post->save();
我的日志没有显示任何活动。删除
注释
,并正确更新
帖子
,包括运行其任何观察者

当我明确删除注释时:

$comment = Comment::find(1);
$comment->delete();
然后,日志显示了我的期望:

INFO --> Deleted a Comment
我是否必须使用
cascade
设置


更新

我在
Model::save()中看到了这段代码:

是否需要在我的
Post
Comments
模型中添加
delete\u相关的
方法?

Unset()不删除相关对象,它会取消两者之间的关系

在多-多的情况下,这也意味着连接表中链接这两个的记录将被删除,在其他关系中,外键将重置为NULL

这两个操作都不会改变对象的数据,因此不会在对象上触发更新,因此不会调用观察者


“级联”意味着,如果删除一个对象,删除操作将“级联”到相关对象,并删除该对象。但只有在您删除关系中的“父项”时,而不是在您取消设置它时(这不会删除任何内容)。

啊,我看到关系已取消设置,但记录未删除。好的,有道理。如何设置此设置以删除项目(或软删除)?在关系定义中将“cascade\u delete”设置为true。如果我有错误,请更正,但我认为这仅适用于删除父记录,而不是仅删除关系。如果要删除项目,请删除它?如果相关,它将自动从任何关系中删除。