在Laravel文档中,我发现了detach()方法来分离多对多关系中的所有对象。在Laravel中,detach()方法也可以应用于一对多的关系吗?如果没有,在这种情况下如何分离所有n个对象?
答案 0 :(得分:3)
在多对多关系中,detach()方法仅删除数据库中的数据透视表项,除非您有特定的级联删除。
对于一对多关系,您希望使用dissociate()方法取消绑定关系,并使用associate()将其绑定在belongsTo侧。
$comment->post()->associate($post->id);
相反,您可以在hasMany端使用attach()添加帐户:
$post->comments()->attach($comment->id);
要删除您要执行的所有评论:
$post->comments()->delete();
答案 1 :(得分:1)
来自docs
删除belongsTo关系时,您可以使用dissociate 方法。此方法将关系的外键设置为null
$user->account()->dissociate();
$user->save();