在 Laravel 中删除行和插入行的最佳方法是啥

Posted

技术标签:

【中文标题】在 Laravel 中删除行和插入行的最佳方法是啥【英文标题】:Which is best way about delete row and insert row in Laravel在 Laravel 中删除行和插入行的最佳方法是什么 【发布时间】:2018-10-13 09:55:12 【问题描述】:

作为标题,我有一张像学生这样的桌子,另一张桌子是班级。 用户可以编辑有关学生上课的信息。 有一对多的关系。 当用户编辑学生的班级时,我总是必须删除这个学生的班级。 然后插入新的类。

\App\class:where('student_id',$student->id)->delete();
foreach($request->input('class') as $class)
  $new = new \App\class;
  $new->student_id = $student->id;
  $new->class_id = $class;
  $new->save();

这个问题有解决办法吗? 谢谢。

【问题讨论】:

【参考方案1】:

目前我假设你的关系设置正确。

你会想看看sync

Documentation

$student->classes()->sync($request->input('class'))

sync 方法需要类的 ID 作为参数。

【讨论】:

非常感谢。这个原因是关于多对多的。我有另一个 OneToMany 案例。 OneToMany 还有其他功能吗? @DavidLin 不幸的是,OneToMany 关系没有其他方法 @DavidLin 你能解释一下Class和Student之间的关系吗?一个学生可以在多个班级吗?一个班级是否有多名学生? 您可以添加表单以在您的帖子中编辑学生的课程吗?

以上是关于在 Laravel 中删除行和插入行的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 使用大数据优化更新/插入查询的最佳方法是啥?

在数据透视表 laravel 中删除行和插入行

管理联结表的最佳方法是啥? (删除并插入)

在 Laravel 迁移中更改列类型的最佳方法是啥?

在 MFC 中管理类似控件行的数据的最佳方法是啥?

在 Laravel Migrations 中存储时区的最佳方法是啥