首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel雄辩-如何组合条件

Laravel雄辩-如何组合条件
EN

Stack Overflow用户
提问于 2018-04-25 10:28:20
回答 4查看 8.3K关注 0票数 6

我用的是以下雄辩的陈述

代码语言:javascript
复制
Title::where('word', 'lovers')
    ->orWhere('word', 'lover')
    ->where('domain', $resultFromFirstKeyword->domain)
    ->get();

我可以通过SQL记录器看到它生成以下SQL

代码语言:javascript
复制
SELECT * FROM `title` 
WHERE `word` = 'lovers' 
OR `word` = 'lover' 
AND `domain` = 'www.texasbirdlovers.com'

但是,我想生成的SQL是

代码语言:javascript
复制
SELECT * FROM `title` 
WHERE (`word` = 'lovers' OR `word` = 'lover') 
AND `domain` = 'www.texasbirdlovers.com'

我怎样才能做到这一点?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-04-25 10:32:26

这应该是可行的:

代码语言:javascript
复制
Title::whereIn('word', ['lovers', 'lover'])
    ->where('domain', $resultFromFirstKeyword->domain)
    ->get();

但是,如果您想像您所说的那样将它们组合在一起,请尝试如下:

代码语言:javascript
复制
Title::where(function($query) {
        $query->where('word', 'lovers')
            ->orWhere('word', 'lover');
    })
    ->where('domain', $resultFromFirstKeyword->domain)
    ->get();
票数 12
EN

Stack Overflow用户

发布于 2018-04-25 10:32:09

只需在group子句中使用where查询即可

代码语言:javascript
复制
Title::where(function($q){
         $q->where('word', 'lovers')->orWhere('word', 'lover');
 })->where('domain', $resultFromFirstKeyword->domain)->get();
票数 1
EN

Stack Overflow用户

发布于 2018-04-25 10:32:50

试一试

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

https://stackoverflow.com/questions/50019929

复制
相关文章

相似问题

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