Laravel Query Builder其中OR whereIn数组

时间:2018-05-09 16:52:22

标签: php laravel laravel-query-builder

我在Laravel中遇到一些麻烦,使用查询构建器根据两个where子句选择用户。 第一个where子句将包含多个where语句,用于根据某些条件选择用户。如果在OR部分失败,我想简单地检查用户ID是否在数组中。 将不胜感激,就如何实现这一目标提出一些建议。 感谢。

$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 :(得分:0)

$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。你也忘了(;)之后[ - &gt; where('type','&lt;',10)]