POST 数据中具有多项选择字段名称的意外字段



我有什么

foreach ($statuses as $key=>$value) {
    echo $this->Form->control('Filter.statuses['.$key.']', array(
        'type' => 'checkbox',
        'value' => $key,
        'label' => $value,
    ));
}

我得到了什么

开机自检数据中出现意外字段"过滤器状态[1"

开机自检数据中出现意外字段"过滤状态[2"

开机自检数据中出现意外字段"过滤器状态[3" ...

我试过什么

$this->Form->unlockField('Filter.statuses');
$this->Form->unlockField('Filter.statuses[]');

如果我删除Filter.前缀,错误就会消失,我不再需要unlockField()调用。

引用

  • 在 cakephp 3 中,我收到错误 POST 数据中的意外字段
  • CakePHP 3 上 POST 数据中的意外字段"g-recaptcha-response"
  • https://book.cakephp.org/3.0/en/controllers/components/security.html

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

一直使用点语法:

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

这样,表单帮助程序将能够保护字段,并创建正确的 HTML 名称属性值,如 Filter[statuses][1]

相关内容

  • 没有找到相关文章

最新更新