使用queryAll YII2获取相关数据

使用queryAll YII2获取相关数据,yii2,Yii2,在my\u form.php中,我想创建一个下拉列表,其中包含相关用户的姓名(relevant=角色为“releaseManager”的用户)。 代码如下: echo $form->field($model, 'Assignee')->dropDownList([$assignees = Yii::$app->db->createCommand('SELECT username FROM user, auth_assignment WHERE id=user_id AND

my\u form.php
中,我想创建一个下拉列表,其中包含相关用户的姓名(relevant=角色为“releaseManager”的用户)。 代码如下:

echo $form->field($model, 'Assignee')->dropDownList([$assignees = Yii::$app->db->createCommand('SELECT username FROM user, auth_assignment WHERE id=user_id AND item_name="releaseManager"')
        ->queryAll()]);
问题是,除了正确的名字,我还得到了数字

例如:我有两个相关的名称,因此我在第一个名称前有两行0,在第二个名称前有一行“1”。好像它说明了数组中的位置,或者我不知道是什么。。 我试着使用
queryScalar()
,但是我只得到了一个名字,而不是2个。
非常感谢您的帮助。

您可能需要
阵列帮助::map()

使用yii\helpers\ArrayHelper;

对于可重用性,我们还可以在模型中创建单独的方法:

public function getUserNames()
{
    $usernames = Yii::$app->db->createCommand('SELECT username FROM user, auth_assignment WHERE id=user_id AND item_name="releaseManager"')
                ->queryAll();
  $result = yii\helpers\ArrayHelper::map($usernames, 'user_id', 'username'); 
  return $result;
}
表格

echo $form->field($model, 'Assignee')->dropDownList(PathTOModel/ModelName::getUserNames())
echo $form->field($model, 'Assignee')->dropDownList(PathTOModel/ModelName::getUserNames())