在 laravel 中,我已经正确设置了一对多关系,我可以使用 saveMany 函数保存关系。
$post->comment()->saveMany($array);
问题是:
Laravel如何自动删除未使用的评论,只将最新的评论存入数据库?
例如。 第一次,
ID 1 Post has ID 1, ID2, ID 3 comment.
但是,当我稍后更新关系时,
ID 1 Post only has ID 2, ID 3 comment
laravel 如何自动删除 ID 1 评论
?并在表格中留下 ID 2, 3
?
谢谢
最佳答案
使用 saveMany() 可以附加新实体并自动将外键设置为父实体(存储它们时设置 $comment->post_id = $post->id;
)。这只是为了附加它们,因为您声明评论始终与帖子相关。一对多定义你的帖子有很多评论,一条评论属于该帖子,由评论中的post_id定义。
除非你想发表与帖子无关的评论,这是没有意义的,否则我会说你不应该从评论中取消设置 post_id,但如果你想摆脱它们,只需删除评论。
但是,如果您这样做,请尝试 $comment->dissociate()
,这会取消设置父 key 。这就像对多对多使用 detach()
。
关于php - Laravel Eloquent 更新一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29695869/