Laravel Query Builder Где ИЛИ где В массиве - PullRequest
0 голосов
/ 09 мая 2018

У меня возникли некоторые проблемы в Laravel, использующем конструктор запросов для выбора пользователей на основе двух предложений where.Первое предложение where будет содержать несколько операторов where для выбора пользователя на основе некоторых условий.Если это не удается в части OR, я хотел бы просто проверить, есть ли идентификатор пользователя в массиве.Был бы признателен за несколько советов о том, как мне этого добиться.Спасибо.

$rs = DB::table('tblUser')
        ->select('name')
        ->where(function($q) {
            $q->where(function($q){
              $q->where('fid', '=', $this->argument('fid'))
                ->where('type', '<', 10)
            })
            ->orWhereIn('id', $userIdSArray);
        })
        ->get();

1 Ответ

0 голосов
/ 09 мая 2018
$userIdSArray = [ '2', '4', '5' ];
$rs           = DB::table( 'Users' )
                  ->select( 'name' )
                  ->where( function ( $q ) use ( $userIdSArray ) {
                      $q->where( function ( $q ) {
                          $q->where( 'fid', '=', $this->argument( 'fid' ) )
                            ->where( 'type', '<', 10 );
                       })
                       ->orWhereIn( 'id', $userIdSArray );
                  })
                  ->get();

Я думаю, вам нужно передать $ userIdSArray в Query Builder. И Вы также забыли (;) после [-> ​​где ('type', '<', 10)] </p>

...