如何使用 yii2 在下拉列表中显示特定角色用户?
How to show the particular role users in dropdown using yii2?
这是我的看法
'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'
)
]
我做了什么?
显示按 user_type_id = 13
过滤的用户。
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 (),
这是我的看法
'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'
)
]
我做了什么?
显示按 user_type_id = 13
过滤的用户。
user_type_id=13
表示用户是推广者。
我想要什么?
我想使用 ArrayHelper::map
.
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 (),