Yiiフレームワークは初めてです。
3つのフィールドを持つフォームがあります。それらの1つは、そのデータがmysqlテーブルにある以前に追加されたデータから取得される選択ドロップダウン要素である必要があります。
どうすればいいですか?
Yiiフレームワークは初めてです。
3つのフィールドを持つフォームがあります。それらの1つは、そのデータがmysqlテーブルにある以前に追加されたデータから取得される選択ドロップダウン要素である必要があります。
どうすればいいですか?
ドロップダウンリストで使用するデータを含むモデルをテーブルに設定している場合は、ドロップダウンリストを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つの例の構文にわずかな違いがあることに注意してください。