如何在Yii中创建下拉列表


How to make a dropDownList in Yii?

我在模型jobs中有2个属性,它们是tagcategory,我想创建一个下拉列表,显示tag的值,category等于'工资',这是我的代码:

$s= CHtml::listData($model2, 'salary', 'tag');                         
echo CHtml::dropDownList('salary', 'salary', $s);

db:

标签/类别

1/val1

2/val1

a/val2

1000/工资

2000/工资

但是我得到了一个dropDownList,其中只包含具有这些条件的最后一个值。我的代码有什么问题?

有两个原因,你只能得到一个结果,首先,你在$model2中得到的结果数量会影响结果,检查你是否使用findAll返回匹配条件的所有行,而不是findfindByPk,因为它们只返回一个值,

其次,listData的第二个属性应该是你的值字段,'salary'不是模型的属性,它必须是valueField(见此)。

如果它被分配为salary -所有选项元素的常量值,它将保持不变,这意味着您的数组将在每次到达时被覆盖,留下一个包含最后一个值的元素数组。

你应该'tag_id'/'id'或某种主键从你的模型或标签值(假设它是唯一的)来识别标签

$model2 = MyModel::model()->findAll("category = salary");
$s= CHtml::listData($model2, 'tag', 'tag');                         
echo CHtml::dropDownList('salary', 'salary', $s,array('empty'=>'--Select--'));