I'm using the following eloquent statement
Title::where('word', 'lovers')
->orWhere('word', 'lover')
->where('domain', $resultFromFirstKeyword->domain)
->get();
Which I can see through the SQL logger produces the following SQL
SELECT * FROM `title`
WHERE `word` = 'lovers'
OR `word` = 'lover'
AND `domain` = 'www.texasbirdlovers.com'
However the SQL that I would like to produce is
SELECT * FROM `title`
WHERE (`word` = 'lovers' OR `word` = 'lover')
AND `domain` = 'www.texasbirdlovers.com'
How would I achieve this?
This should work:
Title::whereIn('word', ['lovers', 'lover'])
->where('domain', $resultFromFirstKeyword->domain)
->get();
If, however, you want to combine them exactly like you said, try this:
Title::where(function($query) {
$query->where('word', 'lovers')
->orWhere('word', 'lover');
})
->where('domain', $resultFromFirstKeyword->domain)
->get();
Just group
your query in a where
clause
Title::where(function($q){
$q->where('word', 'lovers')->orWhere('word', 'lover');
})->where('domain', $resultFromFirstKeyword->domain)->get();
Try
Title::where('domain', $resultFromFirstKeyword->domain)
->where(function($query) {
return $query
->where('word', '=', 'lovers')
->orWhere('word', '=', 'word');
})->get();
Try the following:
Title::where(function($query) {
return $query
->where('word', 'lover')
->orWhere('word', 'lovers');
})
->where('domain', $resultFromFirstKeyword->domain)
->get();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With