モデルのすべてのオブジェクトを一覧表示し、選択したモデルの ID をファイルに書き込みます。SiteController を使用してページをレンダリングしますが、どのモデルを使用する必要がありますか?
$models = myModel::model()->findAll();
$list = CHtml::listData($models, 'id', 'name');
echo CHtml::dropDownList( ???? , $select, $list);
モデルのすべてのオブジェクトを一覧表示し、選択したモデルの ID をファイルに書き込みます。SiteController を使用してページをレンダリングしますが、どのモデルを使用する必要がありますか?
$models = myModel::model()->findAll();
$list = CHtml::listData($models, 'id', 'name');
echo CHtml::dropDownList( ???? , $select, $list);
あなたがやろうとしていることがわかれば、あなたは2つのモデルについて話している. tbl_product => Product および tbl_category => Category と同様です。
デモンストレーションの目的で: たとえば、新しい製品を作成する必要があり、すべての製品がカテゴリに属している必要がある場合は、アクティブなドロップダウンを利用できます。あなたと同様のコードを使用すると、次のように言えます。
$category = Category::model()->findAll();
$list = CHtml::listData($category, 'id', 'name');
注意すべき重要なことは、CHtml::activeDropDownList() はさまざまな種類の引数を想定していることです。それと CHtml::dropDownList() の主な違いは、activeDropDownList( はモデルに関連付けられているのに対し、dropDownList() は関連付けられていないことです。
public static string activeDropDownList(CModel $model, string $attribute, array $data, array $htmlOptions=array ())
public static string dropDownList(string $name, string $select, array $data, array $htmlOptions=array ())
したがって、例を使用して、Product モデルに category_id というフィールドがあると仮定すると、ドロップダウン リストは次のいずれかを使用して生成されます。
CHtml::activeDropDownList($model, 'category_id', $list);
または、次のような Activeform オブジェクトを作成した場合:
$form=$this->beginWidget('CActiveForm');
次に、次のようにドロップダウン リストを作成できます。
$form->dropDownList($model, 'category_id', $list);
$model は製品モデルです。
これがお役に立てば幸いです。