EugeneOne77
@EugeneOne77
Laravel, Vue, Wordpress разработчик.

Как сделать что бы в eloquent была выборка сначала по одним условиям, а потом по другим, что-то вроде вложенного select?

У меня в базе не у всех user есть роль. Когда надо получить полный список юзеров, с наличием определенных ролей + те у кого нет, я добавляю orWhereDoesntHave('roles') и все отлично. Но когда я еще добавляю поиск он выдает список вообще всех.

User::with('roles')->
        whereHas('roles', function ($q) {
            $q->where('slug', 'translator');
            $q->orWhere('slug', 'user');
        })->
        orWhereDoesntHave('roles')->
           
       Where('email', 'like', '%' . $str . '%')->
        orWhere('phone', 'like', '%' . $str . '%')->
        
        get();


По идее бы, сначала сделать один запрос, без like а к нему уже добавить
Where('email', 'like', '%' . $str . '%')->
orWhere('phone', 'like', '%' . $str . '%')->

Но я не знаю как это на eloquent сделать. Подскажите варианты, пожалуйста.
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы