Yii框架2.0数据从数据库输入字段选择选项


Yii framework 2.0 data from database for input field select options

使用Yii框架1,当我从数据库中获取数据并希望将键值放入输入字段选择选项时,我在控制器中使用以下代码:

$roleDataProvider = CHtml::listData(Role::model()->findAll(), 'id', 'description');

当使用Yii框架2.0时,我没有CHtml::listData()。我应该用什么来接近同样的结果?非常感谢。

试试这个:

<?php $dataList=ArrayHelper::map(Category::find()->withoutSubs()->asArray()->all(), 'id', 'name'); ?>
<?= $form->field($model, 'category_id')->dropDownList($dataList); ?> 

@Arkanon:这是与上述代码相关的用法。在您的控制器中:

$dataList = ArrayHelper::map(ModelClass::findOne($id)->all(), 'column_id', 'column_username');
$model = new ModelClass();
return $this->render('viewpage', ['modelXX' => $model, 'keyZZ' => $dataList]);

在您的viewpage.php中:

$form = ActiveForm::begin(['id' => 'form-id']);
$form->field($modelXX, 'user_id')->dropDownList($keyZZ, ['class' => 'class_name', 'id' => 'id_name']);
ActiveForm::end();

现在您应该有一个dropdownlist,里面充满了来自数据库的数据。dropdownlist的值为'column_id',dropdownlist'的标签为'column_username'。