雄辩的关系同步

w80xi6nr  于 2021-06-25  发布在  Mysql
关注(0)|答案(2)|浏览(199)

在我的拉雷维尔项目中,我正在与有说服力的人际关系作斗争。
我的数据库中有一个“user”表和一个“user\u line”表。“user\u lines”表有一个“user\u id”字段,该字段与“users”中的“id”字段相对应,属于典型的主-明细关系。
用户模型与用户线模型有很多关系。用户线模型与用户模型具有belongsto关系。
在我的应用程序中,有一个包含多个用户行的用户窗体。在表单提交期间,可以添加、更改或删除这些用户行。到目前为止,我发现自己正在迭代提交的用户行,并手动创建、更新和删除用户行。我觉得我错过了附加/分离/同步方法雄辩提供,但我似乎不能让他们工作。

$user->lines()->attach or $user->lines()->sync

给我一个异常,告诉我这些是\database\query\builder上未定义的方法。

$user->lines()->createMany($lines)

但这只会创建新行,不会更新现有行并删除删除的行。

4ngedf3f

4ngedf3f1#

您的表关系是一对多的,对于附加到这些关系,您应该使用 save , saveMany 或者 create 方法。
对于更新,您可以执行以下操作:

$user->lines()->where('field',$something)->update($array);

这个 attach , detach 以及 sync 方法适用于多对多关系,而不是一对多关系。

0dxa2lsx

0dxa2lsx2#

这个 attach , detach 以及 sync 方法适用于多对多关系,而不是一对多关系。因此,您需要遍历行并逐个添加或编辑它们。

相关问题