在我的拉雷维尔项目中,我正在与有说服力的人际关系作斗争。
我的数据库中有一个“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)
但这只会创建新行,不会更新现有行并删除删除的行。
2条答案
按热度按时间4ngedf3f1#
您的表关系是一对多的,对于附加到这些关系,您应该使用
save
,saveMany
或者create
方法。对于更新,您可以执行以下操作:
这个
attach
,detach
以及sync
方法适用于多对多关系,而不是一对多关系。0dxa2lsx2#
这个
attach
,detach
以及sync
方法适用于多对多关系,而不是一对多关系。因此,您需要遍历行并逐个添加或编辑它们。