Yii プロジェクトの for items のフォームにドロップダウンを表示したいと考えています。私は私が使用できることを知っています
echo $form->dropDownList($model,'element_id', $Options);
_form.php ビュー ファイル内。
$options 変数を満たすのに最適な場所はどこですか? どのファイルで?見る ?コントローラー?
_form.php
モデルにアクセスでき、データを簡単に取得できるため、現在のモデルがこの目的に最適なオプションです。コントローラからにデータを渡すことはできますが_form.php
、これはより多くの作業です。
データベースからデータを入力する場合(たとえば、データベーステーブルから国を表示tbl_countries
する場合)、モデルに関数を記述してそれらをロードできます。
/* Get all countries. */
public function getCountries(){
$allCountries = Countries::model()->findAll();
return CHtml::listData($allCountries, "id", "name")
}
これにより、ID番号をキーとして、国名を値として持つ配列が得られます。次に、ビューファイルからこの関数を呼び出すことができます。
echo $form->dropDownList($model,'element_id', $model->countries());
コントローラーからビューに変数を渡す必要があります。変数のデータはモデルから取得する必要があります。
$options はより多くのビューで使用されますか? 答えが「はい」の場合、メイン コントローラー (すべてのコントローラーが拡張するコントローラー) または main.php に配置します。
その変数が 1 つのビューでのみ使用され、クラス、ID に関しては、場所は同じビューにある必要があります。