2014-09-20 119 views
0

使用Yii框架1,當我從數據庫中獲取數據並想要將鍵值輸入到字段選擇選項時,我在控制器中使用此代碼:Yii框架2.0來自數據庫的數據輸入字段選擇選項

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

在使用Yii framework 2.0時,我沒有CHtml :: listData()。我應該用什麼來達到相同的結果?謝謝!

+0

Html dropdownList – Kshitiz 2014-09-20 11:34:57

回答

1

試試這個:

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

請添加關於您的解決方案如何工作的解釋,以使您的答案更有用。 – Bobulous 2014-09-20 14:10:28

0

@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'。