POST数据中的意外字段(具有多项选择字段)

时间:2019-01-15 11:52:55

标签: forms cakephp cakephp-3.0

我有什么

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()调用了。

参考

1 个答案:

答案 0 :(得分:2)

您不应该在字段名称中使用方括号,表单助手不支持。如果您需要表单帮助程序不支持的非常规名称,请使用name选项进行指定,同时将兼容的字段名称传递给control()方法的第一个参数。

完全使用点语法:

echo $this->Form->control("Filter.statuses.$key", /* ... */);

这样,表单助手将能够保护字段,并创建适当的HTML名称属性值,例如Filter[statuses][1]