来自其他控制器的 yii 中的下拉列表



我想列出模型的所有对象,并将所选模型的 id 写入文件。使用站点控制器,我呈现我的页面,但我将使用什么模型?

$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::d ropDownList()之间的主要区别在于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 ())

因此,使用此示例,假设我们的产品模型有一个名为 category_id 的字段,那么下拉列表将使用以下任一方式生成:

CHtml::activeDropDownList($model, 'category_id', $list);

或者,如果您创建了如下所示的活动表单对象:

$form=$this->beginWidget('CActiveForm');

然后,您可以像这样创建下拉列表:

$form->dropDownList($model, 'category_id', $list);

其中$model是产品模型。

我希望这是有帮助的。

最新更新