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

在Laravel中使用雄辩ORM时与多个表的一对多关系

陆曜文
2023-03-14

我有三个模型用户,电子邮件和电话和数据库表用户,电子邮件和电话与下列列提到。

  User: id, name
  Emails: id, user_id, emails
  Phones: id, user_id, phones

现在,我在用户模型中使用以下函数,使用雄辩的ORM一对多关系建立用户与电子邮件和电话的关系

public function profile(){
  $data = array();
  $data['emails'] = $this->hasMany('App\Email');
  $data['phones'] = $this->hasMany('App\Phone');
  return
}

我想知道有必要使用hasMany()方法两次,或者有其他更好的方法吗?

共有2个答案

苏边浩
2023-03-14

您也可以这样做:

$user = User::find($userId)->load('emails', 'phones');

我认为“负载”的使用更适合你的情况。

邢嘉祯
2023-03-14

您应该分别定义这些关系:

public function emails()
{
    return $this->hasMany('App\Email');
}

public function phones()
{
    return $this->hasMany('App\Phone');
}

这允许您像这样查询用户:

$user = User::with('emails')->with('phones')->find($userId);

你可以在这里看一下留档。

 类似资料:
  • 我使用的是Laravel 5.4,其模型和表格结构如下: 一个用户可以有多个账户 一个帐号可以被多个用户共享 每个账户有多个持有量 因此,用户通过他们的许多帐户间接拥有许多资产。 我需要帮助在用户模型上定义一个称为“持有量”的关系,以获得适用于用户的所有持有量(基于他们所链接的账户)。 我尝试了很多不同的东西,在谷歌上花了很长时间。我可以接近BelongToMany和hasManyThrough,

  • 如何使用laravel雄辩的ORM关系在多个表中发出一个插入请求。即 表1:用户 id 姓名 电子邮件 表2:员额 id 表3:图像 id 用户id 邮政id 图像名称 关系 表id引用了其他两个表中的 表与

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

  • 我有帖子表和评论表。我想得到所有的帖子与它的评论和以下返回只是帖子有评论: 更新 例如 ID帖 1个职位1 2后2 id post\u id评论 1萨姆勒大学评论 Post::with('comments')只返回有注释的帖子,它只返回第一篇帖子,因为第二篇帖子没有注释,我想获取所有帖子(有注释或没有注释)

  • 我知道如何从关系中获得Laravel雄辩的ORM数据:一对一、一对多和多对多。这里没什么大不了的。这个问题是我不知道是否可能的,或者,也许我在学习中逃脱了。 一对多关系的示例: 表“用户” null 表“电话” ID id_user 电话号码 如何在运行时从两个表中获取所有字段 我知道如何使用原始sql查询或查询生成器来获取这些信息,但是有可能通过雄辩的关系来获取它们吗? 提前谢了。

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