首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel托收和WHERE条款

Laravel托收和WHERE条款
EN

Stack Overflow用户
提问于 2021-02-04 08:20:56
回答 3查看 93关注 0票数 0

我有点搞不懂有收藏的“和哪里”条款。

以下查询获取所有拥有汽车牌照或摩托车牌照的用户:

代码语言:javascript
复制
User::whereHas('licences', function($query) {
    $query->whereIn('type', ['car', 'motorbike']);
})->get();

现在,如何让所有拥有汽车牌照和摩托车牌照的用户?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-02-04 08:27:18

尝试复制您的whereHas:

代码语言:javascript
复制
$wantedLicences= ['car', 'motorbike'];
$query=User::query();

foreach($wantedLicences as $wantedLicence)
{
    $query=$query->whereHas('licences', function($query)use($wantedLicence) {
        $query->where('type', $wantedLicence);
    })
}
票数 1
EN

Stack Overflow用户

发布于 2021-02-04 08:29:23

假设用户不能拥有超过一种类型的许可证,那么您将调整whereHas以检查相关记录的计数是否等于2:

代码语言:javascript
复制
User::whereHas('licenses', function ($query) {
    $query->whereIn('type', ['car', 'motorbike']);
}, '=', 2)->get();

Laravel 8.x文档-雄辩的关系-质疑关系的存在

票数 2
EN

Stack Overflow用户

发布于 2021-02-04 08:26:51

如果用户拥有一辆汽车和一辆摩托车,查询应该是这样的。

代码语言:javascript
复制
User::whereHas('licences', function($query) {
       $query->where('type','car')->where('type','motorbike');
})->get();
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66041779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档