Laravel 查询生成器 Where OR whereIn 数组

Laravel Query Builder Where OR whereIn array

我在 Laravel 使用基于两个 where 子句的 select 用户的查询生成器时遇到了一些问题。 第一个 where 子句将根据某些条件包含 select 用户的多个 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();
$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。你也忘记了 (;) 在 [->where( 'type', '<', 10 )]

之后