如何在多对多关系中使用条件?

问题描述 投票:0回答:1

我有三个模型公司,用户,项目

companies:
id, name
users: 
id, name
projects: 
id, title, company_id

数据透视表

project_members: 
id, user_id, project_id

用户和项目的关系是多对多的。 如何在Project中加入具有特殊user_id的所有项目。

这是我的代码获取列表项目用户没有加入,但不是预期的:

$project = Project::with(['company', 'users'])
               ->whereHas('users', function ($query) use ($user) {
                   $query->where('id', '!=', $user->id);
               });

我希望你能帮助我并解释如何使用,在Laravel中有哪些。

laravel relationship
1个回答
0
投票

Project :: with(['users'=> function($ q)])加载所有项目和满足子查询的用户。在这种情况下,所有项目和具有所选id的用户(如果存在)

而Project :: whereHas('users',function($ q){})只加载满足用户子查询的项目,在您的情况下:项目分配给具有所选id的用户

© www.soinside.com 2019 - 2024. All rights reserved.