我正在使用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 变量,而不是表单类型属性。
答案 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')) {
}