1

WHEREクロージャを使用してテーブルからデータの列を選択し、yiiのコンボボックスとしてリストする方法は?

4

1 に答える 1

3

CHtmlメソッドdropDownList()およびactiveDropDownList()を見てください。

ドロップダウンリストに挿入するデータを、たとえばアクティブレコードクエリの結果として設定できます。

echo CHtml::dropDownList('myDropdown', '1',  CHtml::listData(myModel::model()->findAllByAttributes(array('myField'=>1)),'id','name'));

上記のコマンドは、myModelモデルからすべての結果を選択しmyField = 1(値として「id」、表示されるテキストとして「name」を使用)、「myDropdown」という名前のドロップダウンリストに挿入します。最初に選択された値は1になります。 。

たとえばgiiによって作成されたフォームでこれを使用している場合は、$formを使用してドロップダウンを作成できます。これは実際にはactiveDropDownList()を使用するため、構文は少し異なります。次に例を示します。

 echo $form->dropDownList($model,'myOtherField', CHtml::listData(myModel::model()->findAllByAttributes(array('myField'=>1)),'id','name'));

ドロップダウンリストにアクティブレコードクエリからのデータを実際に入力しているビットは、CHtml :: listData()メソッドです。このメソッドは、アクティブレコードクエリから結果セットを取得し、それを配列にフォーマットして$data、dropDownListのパラメーターに受け入れます。 ()またはactiveDropDownList()。

于 2012-09-20T11:47:32.057 に答える