gpt4 book ai didi

php - 从分层的belongsToMany关系返回所有数据Laravel 5.3

转载 作者:行者123 更新时间:2023-11-29 10:36:10 25 4
gpt4 key购买 nike

我有 Netflix 风格的模型(在层次结构意义上)。作为一个例子,我有一个属于ToMany类(class)的类(class),属于ToMany集合,属于ToMany子组,属于ToMany组。类(class)是最低级别,最高级别是组。沿着链向下,每个链接也都属于下一个链接的许多链接。

我正在使用一个过滤器按钮,该按钮将从 Wordpress 调用我的 Laravel API。当我传递组 id 和子组 id 时,我需要能够返回属于子组的集合。但我需要的是这样的:

$group->with('subgroups')->where('subgroup_id')->with('collections')->with('courses')->with('lessons');

但是,这种语法不起作用。有没有办法向下查询每个级别并获取该级别的关系?

如果需要更多代码,我很乐意分享更多。

最佳答案

以下内容未经测试,但希望可以立即起作用,或者让您了解如何自己解决问题。

几点:

  1. 您可以在 with 调用中链接关系。例如。 courses.lessons 将获取找到的集合的所有类(class)和相关类(class)
  2. whereHas 允许您查询关系。在此示例中,我正在查找所有集合,其中有一个与传递的子组 ID 匹配的子组,并且还有一个与传递的组 ID 匹配的组。

示例:

$groupId = 123;
$subgroupId = 456;

$collections = Collection::with('courses.lessons')
->whereHas('subgroup', function ($query) ($groupId, $subgroupId) {
return $query->whereHas('group', function ($query) use ($groupId) {
return $query->where('id', $groupId);
})
->where('id', $subgroupId);
})
->get();

关于php - 从分层的belongsToMany关系返回所有数据Laravel 5.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46395777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com