使用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())