这是我的视图
'promoter_id' => [
'type' => Form::INPUT_DROPDOWN_LIST,
'options' => ['prompt' => '--'.Yii::t ( 'app', 'Ventor Type' ).'--',],
'items' => ArrayHelper::map (
User::find ()->orderBy ( 'username')->where(['user_type_id' => [13]])->asArray ()->all (),
'id',
'username'
)
]
我做了什么显示了CCD_ 1过滤的用户。user_type_id=13
表示用户是发起人。
我想要什么我想向用户展示下面使用ArrayHelper::map
的sql查询。
SELECT u.username
FROM tbl_user u,tbl_user_type t
where u.user_type_id = t.id and t.type='promoter';
由于您使用的是mysql,您可以简单地使用innerJoin
:
User::find()
->select(['user.id', 'user.username'])
->innerJoin('user_type', 'user_type.id = user.id')
->where(['user_type.type' => 'promoter'])
->orderBy('username')
->asArray()
->all(),
如果您在user
和user_type
之间有关系,您可以使用joinWith
,它为您处理联接类型和联接条件:
User::find()
->select(['user.id', 'user.username'])
->joinWith('userType', true)
->where(['userType.type' => 'promoter'])
->orderBy('username')
->asArray ()
->all (),