У меня в настоящее время есть следующий код, который работает ...
$searchString = $request->searchstring;
$searchValues = preg_split('/\s+/', $searchString, -1, PREG_SPLIT_NO_EMPTY);
$cards=Card::where(function ($q) use ($searchValues){
foreach($searchValues as $value){
$q->orWhere('firstname', 'like', "%{$value}%");
$q->orWhere('lastname', 'like', "%{$value}%");
$q->orWhere('cardset', 'like', "%{$value}%");
}
})->paginate(24);
Он производит следующий sql, когда я делаю дд ...
select * from "cards" where ("firstname" like ? or "lastname" like ? or "cardset" like ? or "firstname" like ? or "lastname" like ? or "cardset" like ?)
, но sqlЯ бы хотел, чтобы ...
select * from "cards" where ("firstname" like ? or "lastname" like ? or "cardset" like ?) AND ("firstname" like ? or "lastname" like ? or "cardset" like ?)
Я попробовал пару вещей, но, кажется, не могу получить это.
Спасибо.