0

我是 Yii 框架的新手。

我有一个包含三个字段的表单。我需要其中一个是一个选择下拉元素,它的数据来自以前添加的 mysql 表中的数据。

我该怎么做 ?

4

1 回答 1

1

例如,如果您为包含要在下拉列表中使用的数据的表设置了模型,则可以使用CHtml::dropDownList()渲染下拉列表的方法,并将CHtml::listData()该模型渲染为列表的项目;

echo CHtml::dropDownList(
    'attribute_name',
    '',
    CHtml::listData(MyOtherModel::model()->findAll(),'id','name')
);

我经常使用 Gii,它使用 CActiveForm 小部件来显示表单,如果您的表单也使用 CActiveForm,您可以渲染您的下拉列表:

$form=$this->beginWidget('CActiveForm', array(
    'action'=>Yii::app()->createUrl($this->route),
    'method'=>'get',
));

...

echo $form->label($model,'attribute_name');
echo $form->dropDownList(
    $model,
    'attribute_name',
    CHtml::listData(MyOtherModel::model()->findAll(),'id','name')
);

...

$this->endWidget();

请注意,CActiveForm 使用CHtml::activeDropDownList()而不是CHtml::dropDownList()我在第一个示例中使用的,因此我的两个示例之间的语法略有不同。

于 2012-12-21T15:36:13.383 回答