【发布时间】:2014-09-14 11:31:09
【问题描述】:
我有 CGridView 的自定义字段。每列都有不同的自定义字段及其 id。显示它们就好了。当我尝试为这些字段应用过滤器时,问题就开始了。
我有 4 个过滤器,名称为 CustomField[5]、CustomField[6]、CustomField[8] 和 CustomField[12],由其 id 索引。过滤后yii生成错误查询:
如您所见,它一直循环到最后一个元素(因为最大的 id 是 12,所以它一直循环到 12)。但是如果我添加字母(将索引作为字符串)它会生成正确的查询:
过滤器下拉菜单是用代码生成的:
echo CHtml::dropDownList(
"CustomField[{$column->id}]",
$this->getFilterValue($column),
['' => ''] + CustomFieldValue::getValue($column),
$column->tagOptions
);
它会生成这个 html:
<tr class="filters">
<td>
<select id="CustomField_5" name="CustomField[5]">
<option selected="selected" value=""></option>
<option value="29">Olympic Male Fly -58</option>
<option value="33">Olympic Female Bantam -57</option>
</select>
</td>
<td>
<select id="CustomField_6" name="CustomField[6]">
<option selected="selected" value=""></option>
<option value="4">Quarter-finals</option
</select>
</td>
<td>
<select id="CustomField_8" name="CustomField[8]">
<option selected="selected" value=""></option>
<option value="3">Bronze</option>
<option value="1">Gold</option>
<option value="4">Participation</option>
</select>
</td>
<td>
<select id="CustomField_12" name="CustomField[12]">
<option selected="selected" value=""></option>
<option value="2">Silver</option>
<option value="1">Gold</option>
</select>
</td>
</tr>
知道怎么解决吗?
【问题讨论】:
-
您能否添加为其中一个过滤器生成的不带字母的 html?
-
@topher 更新问题