php - Laravel Eloquent 更新一对多关系

标签 php laravel-4

在 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/

相关文章:

php - 警告 : exec(): Unable to fork in PHP

javascript - 如何在cakephp2.6中将json文件发送到dataTable

php - 显示 BLOB 图片 Laravel 4

php - Laravel 从 ROOT 外部调用/public 文件夹。获取 NotFoundHttpException

php - MySQL 查询 WordPress 日事件

php - Yii 2 : Can I access a variable in a view that's rendered by another view?

php - 网站部分的不同域

php - 拉维尔 : how to add where clause using query builder?

php - 如何从 Laravel 4 包回滚迁移?

php - Laravel 在验证中设置数字之间