Drop down menu 将模型的所有行(id、名称)列为另一个模型中特定列的下拉列表

Drop down menu 将模型的所有行(id、名称)列为另一个模型中特定列的下拉列表,drop-down-menu,yii,html-select,Drop Down Menu,Yii,Html Select,我只需要列出model1的所有行(id,name),作为model2中特定列的dropdownlist,该列的id存储在db中,但在用户界面的dropdownlist中显示名称 我可以在model2中编写一个函数并在controller2/create中调用该函数吗?我不确定它是否可以工作 请让我知道我是否能以任何好的方式实现它。您可以使用CHtml::listData()来实现它 CHtml::dropDownList('myDropDown', '', CHtml::listData

我只需要列出model1的所有行(id,name),作为model2中特定列的dropdownlist,该列的id存储在db中,但在用户界面的dropdownlist中显示名称

我可以在model2中编写一个函数并在controller2/create中调用该函数吗?我不确定它是否可以工作


请让我知道我是否能以任何好的方式实现它。

您可以使用CHtml::listData()来实现它

    CHtml::dropDownList('myDropDown', '', CHtml::listData(Model1::model()->findAll(),
'id', 'name'));

然后您可以

$\u POST['myDropDown']的形式访问该值

在您的MODEL2中创建一个类似的函数

public function myDropDownData(){
 $data = Model1::model()->findAll();
 $datalist = CHtml::listData($data, 'id', 'name');
 retrun $datalist;
}
像这样在视图中使用

echo $form->dropDownList($model2,'model2_column_name',$model2->myDropDownData());