【问题标题】:Unexpected field in POST data with a multiple choice fieldNamePOST 数据中的意外字段,具有多项选择字段名称
【发布时间】:2019-06-09 10:22:23
【问题描述】:

我有什么

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

参考文献

【问题讨论】:

  • googlebot 的关键字:方括号

标签: forms cakephp cakephp-3.0


【解决方案1】:

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

一路使用点语法:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 2020-12-20
    • 2020-10-01
    • 1970-01-01
    • 2019-04-12
    • 1970-01-01
    相关资源
    最近更新 更多