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

链接模型在一起Laravel雄辩

怀刚毅
2023-03-14

所以我有三个模型

挑战

使用者

参赛者

挑战有它的主键

用户只有它的主键

而且进入者有外键挑战id和用户id

如果我从挑战中查询(我有挑战标识),用雄辩的方式让所有与该挑战相关的用户的最佳方式是什么?我基本上想要所有进入者数据和所有用户数据的集合。我一直在研究这种方法,但我似乎无法让它发挥作用。

共有1个答案

宋宇
2023-03-14

您要查找的代码是:

Entrant::where('challenge_id', $challengeId)->with('users')->get();

这段代码的关键是带有部分的,它急切地加载与每个进入者关联的用户。这种加载相关数据的方法解决了N 1问题,并减少了数据库的负载。

这段代码假设您已经在每个雄辩的模型之间建立了适当的关系...

User      hasMany   Entrant
Challenge hasMany   Entrant
Entrant   belongsTo User
Entrant   belongsTo Challenge

 类似资料:
  • 我正在使用Laravel5.3,需要一些关于雄辩的模型查询的帮助。我有三个模型(UserDetails、Categories、Articles)。我在用户详细信息之间有关系- 每个关系都运行良好,即Userdetails::find(1)- 我有一种感觉,范围可能是答案,但他们似乎不工作,当我尝试它。 模型中的关系 UserDetails.php Categories.php 我研究了HasMan

  • 我试图通过使用Laravel Eloquent获得数据,但我无法访问。无论何时尝试,它都显示尝试获取非对象的属性“name” 我有两个模型。类别和文章。类别有许多文章。以下是模型: 类别模型 文章模式 物品管理员 查看刀片(admin.article.pending) 在这里的刀片,我不能访问类别通过雄辩的属于功能,我没有得到背后的原因得到的消息: ErrorException(E_ERROR)试

  • 提前感谢您的时间。如果你赶时间,跳到粗体部分。 我有一个以下用例:应用程序的每个用户都使用自己的一组前缀表来创建有说服力的模型(即,对于code_发票使用Invoice.php,对于code_客户使用Client.php)。前缀在用户表中定义(例如users.code)。 在Laravel 5.2中,我已经能够通过在用户登录后读取运行时设置的配置(或会话)变量来轻松设置雄辩模型的$table属性。

  • 我希望避免一直使用表名,而使用别名。

  • 我搜索了这个,得到了很多结果,每个人都说它有效。 我的情况和这里显示的完全一样http://laravel.io/forum/04-22-2015-hasone-and-insert 学生模型 设备型号 我试过了 但我得到错误为

  • 简介: 我有这些表与他们的模型: 地址表-- 规则: 每个用户只能有一个地址 这里可以进行两种可能的关系规划: > 用户有一个地址和地址属性To User[即一对一关系],但缺点是外键位于地址表中,即user_id字段,通过与其他模型[公司和财产]重复相同的关系,我们将获得地址表中的另外两个外键是[company_id和property_id],那么我们将最终得到3个外键用于3个型号,但每行记录只