使用Yii框架1,當我從數據庫中獲取數據並想要將鍵值輸入到字段選擇選項時,我在控制器中使用此代碼:Yii框架2.0來自數據庫的數據輸入字段選擇選項
$roleDataProvider = CHtml::listData(Role::model()->findAll(), 'id', 'description');
在使用Yii framework 2.0時,我沒有CHtml :: listData()。我應該用什麼來達到相同的結果?謝謝!
使用Yii框架1,當我從數據庫中獲取數據並想要將鍵值輸入到字段選擇選項時,我在控制器中使用此代碼:Yii框架2.0來自數據庫的數據輸入字段選擇選項
$roleDataProvider = CHtml::listData(Role::model()->findAll(), 'id', 'description');
在使用Yii framework 2.0時,我沒有CHtml :: listData()。我應該用什麼來達到相同的結果?謝謝!
試試這個:
<?php $dataList=ArrayHelper::map(Category::find()->withoutSubs()->asArray()->all(), 'id', 'name'); ?>
<?= $form->field($model, 'category_id')->dropDownList($dataList); ?>
請添加關於您的解決方案如何工作的解釋,以使您的答案更有用。 – Bobulous 2014-09-20 14:10:28
@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();
現在,你應該有一個下拉列表,充斥着數據來自數據庫。下拉列表的值是'column_id',下拉列表的標籤是'column_username'。
Html dropdownList – Kshitiz 2014-09-20 11:34:57