当前位置: 首页 > 知识库问答 >
问题:

雄辩的关系同步

邓阳炎
2023-03-14

我在我的Laravel项目中与雄辩的关系作斗争。

我的数据库中有一个“用户”表和一个“用户行”表。“用户行”表中有一个“用户id”字段,该字段与“用户”中的“id”字段相对应,属于典型的主-明细关系。

用户模型与用户线模型有很多关系。UserLine模型与用户模型具有belongsTo关系。

在我的应用程序中,我有一个包含多个用户行的用户表单。在表单提交期间,可以添加、更改或删除这些用户行。到目前为止,我发现自己正在迭代提交的用户行,并手动创建、更新和删除用户行。我觉得我错过了雄辩的attach/detach/sync方法,但我似乎无法让它们发挥作用。

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

给我一个异常,告诉我这些是在Illumb\Database\Query\Builder上未定义的方法。

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

工作,但这只是创建新的行,它不更新现有的行和删除删除行。

共有2个答案

岳景明
2023-03-14

您的表关系是一对多的,要附加到这种关系,您应该使用保存保存许多创建方法

为了更新,你可以这样做:

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

attachdetachsync方法适用于多对多关系,而不是一对多关系。

钮安歌
2023-03-14

attachdetachsync方法适用于多对多关系,而不是一对多关系。因此,您需要迭代行并逐个添加或编辑它们。

 类似资料:
  • 我有一个表事务与复合主键id,Nom,日期和一个表Cour与Nom作为主键和一个事务有关一个Cour。 我怎样才能得到一个有口才关系的特定交易的课程?

  • 我有以下三个表格: 所以基本上这种关系就像: 用户有许多项目 项目属性到客户端 我的问题是: 如何使用eloquent获得用户的所有客户端? 似乎我不能用户hasManyPass方法,因为在客户端表中没有project_id。 因此,我希望达到的目标是:

  • 我正在编写php代码,对于当前的项目,我正在使用laravel框架(带有雄辩的ORM)。在这个项目中,我创建了两个表:用户和任务。我想在这些表之间创建一个“一对多”的关系。因此,一个用户可以有许多任务。在Tasks类中,我创建了方法所有者(): 但是当我以前得到用户名的时候 我得到这个异常:未定义的属性:illumb\Database\Eloquent\Relations\BelongsTo::$

  • 我有三种模式——博客、帖子、评论。博客有很多帖子,帖子有很多评论 当我写作时 它会给所有的博客发帖子和评论。但我将如何获得那些由管理员用户创建的博客,即评论表中的用户id。在哪里写入

  • 我是Laravel5.2的新手,正在开发一个遗留系统,对雄辩有点困惑,希望有人能给我代码。 共有3个表格: 卡片类别卡片2类 卡片可以是许多类别的一部分,这些类别保存在cards2cat表中。 cards2cat表的结构如下 id(主键)图像(卡)类别 我想做的是在Cards模型中有一个方法,名为getCardsWithCategors,它返回Cards信息和category表中类别的名称。 ca

  • 我刚刚开始学习LaravelV3,我试图通过创建一个博客来了解eloquent的一对多关系。我的帖子与类别有多对一的关系(每个帖子都链接到一个类别)。 我有以下表格和以下字段: 帖子:id、标题、正文、创建日期、类别id 类别:id、名称 我有以下两种型号: 我想出了如何通过传递类别id来获得所有帖子: 我只是需要帮助,找出如何获得所有的职位,并得到他们的更正类别。因此,在视图中的一天结束时,我可