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

时间:2019-04-22 18:39:43

标签: laravel relationship

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

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

数据透视表

project_members: 
id, user_id, project_id

用户项目的关系是多对多的。
如何将所有具有特殊user_id的 Projects 加入或不加入Project。

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

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

希望您能对我有所帮助,并说明如何在Laravel中使用 with whereHas

1 个答案:

答案 0 :(得分:0)

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

然后Project :: whereHas('users',function($ q){})仅加载满足用户子查询的项目,在您的情况下:将项目分配给具有选定ID的用户