Используя гет-запрос с
?drivecat[]=3&drivecat[]=4
, методом проб и ошибок получился вот такой код:
// проверка на наличие в запросе массива drivecats
if ( count($request->drivecats) ) {
// выбираем id пользователей (для этого создал отдельную модель для связывающей таблицы)
$users_id = DrivecatUser::whereIn('drivecat_id', $request->drivecats)->pluck('user_id');
// выбираем пользователей
$users = User::whereIn('id', $users_id)->get();
} else {
$users = User::has('drivecats')->get();
}
UPD: не нравится мне get-запрос вида
?drivecat[]=3&drivecat[]=4
, да и в js работать неудобно, поэтому сменил на
?drivecats=3,4
и в контроллере прописал разбиение строки на массив:
$drivecats = explode(',', $request->drivecats);