0

Yiiフレームワークは初めてです。

3つのフィールドを持つフォームがあります。それらの1つは、そのデータが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()使用しているため、2つの例の構文にわずかな違いがあることに注意してください。

于 2012-12-21T15:36:13.383 に答える