сделать запрос с ORM и использовать (AND) и (OR) вместе - PullRequest
0 голосов
/ 07 октября 2018

Я хочу сделать запрос с ORM и использовать вместе (И) и (ИЛИ) внутри. Мой код:

$users = \App\User::where('type',1)->orWhere('type',2)->orWhere('type',3)->where('name',$name)->where('family',$family)->get();

Это неверно

мой код должен присоединиться

$users = \App\User::where('type',1)->orWhere('type',2)->orWhere('type',3)->get();

с

 $users = \App\User::where('name',$name)->where('family',$family)->get()

как мне написать настоящий запрос?

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Если дело с тем же полем, поэтому вам нужно идти с whereIn Как упоминал @Tharaka Dilshan.

Если дело более сложное, чем это, вы можете пойти сгруппированными запросами:

$users = \App\User::where(function ($query) {
    $query->where('type', 1)->orWhere('type', 2)->orWhere('type', 3);
})
->where('name', $name)
->where('family', $family)
->get();

Подробнее о Группировка параметров.

0 голосов
/ 07 октября 2018

Похоже, что вы ищете это whereIn() функция.

whereIn() функция сравнивает значения одного столбца с array данных.

$users = \App\User::where([
    ['name',$name],
    ['family', $family]
])
->whereIn('type', [1,2,3])
->get()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...