Попытка получить всех пользователей, которые являются сотрудниками и чье имя или фамилия содержат определенные символы.Запрошенный запрос, чтобы получить пользователей, у которых есть роль сотрудника и имя или фамилия, содержит символы
$users = User::whereHas('roles',function($query){ $query->where('title','Employee'); })->where('firstname','LIKE', '%'.$term.'%')->orWhere('lastname','LIKE','%'.$term.'%')->take(5)->get();
Существует сводной таблицы связывания пользователей с ролями: role_user
Пробовал вышеизложенное, однако возвращает всех пользователей, которые содержат строку, чтобы соответствовать, а не только те, которые имеют роль «Сотрудник».
Я использую сводную таблицу. На самом деле у меня нет внешнего ключа role_id для модели пользователя – LaserBeak
Это редактирование должно работать ;-) –
Да, работает. Хотя приведенный ниже пример соединения выглядит немного более эффективным. Интересно, почему требуется предложение orWhereHas и выполняет ту же логику фильтрации, что и первая WhereHas – LaserBeak