如何使用cakePHP 2.x只使用编辑表单post方法?

时间:2014-02-07 19:33:33

标签: php cakephp

我正在使用CakePHP 2.x.当我提交编辑表单时,它不适用于以下代码:

if ($this->request->is(array('post'))) {
    ...

    if ($this->User->save($this->request->data)) {
        ...
    } else {
        ...
    }
} else {
    ...
}

但它适用于以下代码:

if ($this->request->is(array('post','put'))) { //change made here
    ...

    if ($this->User->save($this->request->data)) {
        ...
    } else {
        ...
    }
} else {
    ...
}

但我希望我的代码仅适用于第一个代码。如果您有任何解决方案,请帮助我。

编辑: 请注意,当我们每次创建一个隐藏的输入变量名称 _method 时,我们创建一个使用CakePHP时,在添加表单上设置 POST PUT 在编辑表格上。 CakePHP请求处理程序使用 _method 变量,而不是表单类型属性。

2 个答案:

答案 0 :(得分:1)

添加选项'type'=>在创建表单时“发布”,我相信它将始终使用post作为其方法。例如:

 echo $this->Form->create('Model', array('type' => 'post'));

答案 1 :(得分:0)

当您使用type =>文件创建表单时,Cakephp会使用PUT请求方法覆盖POST。 您必须使用

进行检查
if($this->request->is('put') || $this->request->is('post')) {
}