我在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();
答案 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)]