我正在使用以下 Eloquent 陈述
Title::where('word', 'lovers')->orWhere('word', 'lover')->where('domain', $resultFromFirstKeyword->domain)->get();
我可以通过 SQL 记录器看到产生以下 SQL
select * from `title` where `word` = 'lovers' or `word` = 'lover' and `domain` = 'www.texasbirdlovers.com'
但是,我想生成的 SQL 是
select * from `title` where (`word` = 'lovers' or `word` = 'lover') and `domain` = 'www.texasbirdlovers.com'
我将如何实现这一目标?
最佳答案
这应该有效:
Title::whereIn('word', ['lovers', 'lover'])
->where('domain', $resultFromFirstKeyword->domain)
->get();
但是,如果您想完全按照您说的方式组合它们,请尝试以下操作:
Title::where(function($query) {
$query->where('word', 'lovers')
->orWhere('word', 'lover');
})
->where('domain', $resultFromFirstKeyword->domain)
->get();
关于php - Laravel Eloquent - 如何分组条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50019929/