Laravel 中的嵌套关系
嵌套关系允许您访问数据结构中多个级别的模型。在 Laravel 中实现这一点可能是一个挑战,尤其是在关系复杂的情况下。
问题陈述:
尽管有多个中间表,但仍检索订阅事件的人员列表事件模型和人物模型之间。
数据库结构:
数据库结构包含以下表:事件、城市、公司和人员。
模型关系:
不成功的尝试:
尝试使用 with() 和 whereHas() 方法没有产生所需的结果。
解决方案:
要解决此问题,请使用以下查询:
return Event::with('city.companies.persons')->get();
此查询急切加载与事件相关的城市、公司和人员。
或者,如果您只想从 person 表中选择特定字段:
return Event::with(['city.companies.persons' => function ($query) { $query->select('id', '...'); }])->get();
此方法可确保仅检索指定字段,从而优化查询。
以上是如何在 Laravel 中检索嵌套关系:跨多个中间表访问订阅事件的人员?的详细内容。更多信息请关注PHP中文网其他相关文章!