【问题标题】:How to use condition in many to many relationship laravel?如何在多对多关系laravel中使用条件?
【发布时间】:2019-09-11 22:34:16
【问题描述】:

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

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 中使用 withwhereHas

【问题讨论】:

  • 你能澄清你的问题吗?您是在问如何在项目和用户之间建立关系,或者如何访问这种关系?
  • 我有用户和项目的关系。现在我想通过用户的条件获取列表项目。例如:如果用户加入项目,则获取列表项目。
  • 抱歉,我很难弄清楚你想要什么。根据您的编辑,您想获取没有特定用户的项目列表吗?
  • 是的。我想获取没有 user.id 的项目列表

标签: laravel relationship


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2015-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 2014-04-18
    • 2014-07-16
    • 1970-01-01
    相关资源
    最近更新 更多