laravel - 如何在多对多关系laravel中使用条件?
问题描述
我有三个模型公司,用户,项目
companies:
id, name
users:
id, name
projects:
id, title, company_id
数据透视表
project_members:
id, user_id, project_id
用户和项目的关系是多对多的。
如何让所有具有特殊 user_id 的项目都加入到项目中。
这是我的代码获取列表项目用户未加入但不是预期的:
$project = Project::with(['company', 'users'])
->whereHas('users', function ($query) use ($user) {
$query->where('id', '!=', $user->id);
});
我希望你能帮助我并解释如何在 Laravel 中使用with , whereHas。
解决方案
Project::with(['users' => function($q)]) 加载所有项目和满足子查询的用户。在这种情况下,所有项目和具有所选 ID 的用户(如果存在)
并且 Project::whereHas('users', function($q) {}) 仅加载满足用户子查询的项目,在您的情况下:分配给具有所选 id 的用户的项目
推荐阅读
- rest - 在同一个 Rest API 中有不同的路径
- java - 单例 Java 类可以有静态常量变量吗?声纳棉绒错误
- dart - 绘制从远程服务器下载的图像
- python-3.x - 如何在python中的高阶函数中更改父函数的参数
- java - 如果发生 SurefireBooterForkException,如何构建失败?
- css - Spring Boot + Thymeleaf css 不适用于模板
- reactjs - React,componentWillReceive lifeCycle Hook 未被调用(在传递道具时)
- python - 如何正确设置 STANFORD_MODELS VARIABLE?
- sql - 如何在 sql server(或 asp.net)中创建或生成此模式以供参考 ID
- google-search-console - 为什么我的“发现当前未编入索引”链接的数量增加了?