我想列出我模型的所有对象,并将所选模型的 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);
如果我得到你想要做的事情,你说的是两个模型。像 tbl_product => 产品和 tbl_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 将是 Product 模型。
希望这有用。