获取与其他集合有关系的模型

时间:2020-09-28 06:56:28

标签: laravel eloquent

我有两个具有多对多关系的模型。表格和工作空间。 因此,FORM属于TOMANY WORKSPACE,而WORKSPACE属于TOMMANFORM。

现在,我需要执行一个查询,以获取属于集合($ workspaces)中任何WORKSPACE的所有FORM。 像这样:

$forms = Form::whereHas('workspaces', function ($q) use ($workspaces) {
                $q->whereIn('id', $workspaces);
            })->get();

我知道此查询无效。但我希望它能解释我需要做的事情。我基本上需要获取$ workspaces集合中存在的具有WORKSPACE的所有FORM。

有任何关于如何做到这一点的建议吗?

1 个答案:

答案 0 :(得分:1)

假设您已正确建立关系,则应该可以通过以下方式实现此目标:

$workspaceIds = $workspaces->pluck('id');

$forms = Form::whereHas('workspaces', function ($query) use ($workspaceIds) {
    $query->whereIn('workspace.id', $workspaceIds);
})->get();