WHEREクロージャを使用してテーブルからデータの列を選択し、yiiのコンボボックスとしてリストする方法は?
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 に答える