foreach ($statuses as $key=>$value) {
echo $this->Form->control('Filter.statuses['.$key.']', array(
'type' => 'checkbox',
'value' => $key,
'label' => $value,
));
}
POST数据中的意外字段'Filter.statuses [1“
POST数据中意外的字段'Filter.statuses [2“
POST数据中的意外字段'Filter.statuses [3“ ...
$this->Form->unlockField('Filter.statuses');
$this->Form->unlockField('Filter.statuses[]');
如果我删除了Filter.
前缀,错误就消失了,我不再需要unlockField()
调用了。
答案 0 :(得分:2)
您不应该在字段名称中使用方括号,表单助手不支持。如果您需要表单帮助程序不支持的非常规名称,请使用name
选项进行指定,同时将兼容的字段名称传递给control()
方法的第一个参数。
完全使用点语法:
echo $this->Form->control("Filter.statuses.$key", /* ... */);
这样,表单助手将能够保护字段,并创建适当的HTML名称属性值,例如Filter[statuses][1]
。