2

我在 model 中有 2 个属性jobs,它们是tagand category,我想创建一个 dropDownList 来显示tag具有category相等“salary”的人的值,这是我的代码:

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

我的数据库:

标签/类别

1 / val1

2 / val1

一个/val2

1000 / 工资

2000 / 工资

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

4

1 回答 1

1

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

其次,listData 的第二个属性应该是您的值字段“薪水”不是模型的属性,这必须是 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--'));
于 2014-06-24T10:02:50.767 回答