将模型的所有行(id,name)列为另一个模型中特定列的下拉列表

时间:2014-01-07 06:50:36

标签: drop-down-menu yii html-select

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

我可以做一些事情,比如在model2中编写一个函数并在controller2 / create中调用函数,它会工作吗我不确定它

如果我能以任何好的方式实现它,请告诉我。

2 个答案:

答案 0 :(得分:1)

在你的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());

答案 1 :(得分:0)

你可以像

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

然后您可以访问值作为
$_POST['myDropDown'];