尝试从CakePHP中的另一个模型中删除一个模型时出现CSRF错误

时间:2013-04-11 03:48:08

标签: cakephp

所以在一个模型的索引中,我有一个关联模型列表。在列表中,我包括删除后链接。

但是,似乎在属于另一个模型的视图中使用delete postlink删除一个模型会引发CSRF错误。

这可能只是Cake的安全组件的工作方式,但有没有办法(不影响安全措施)?

编辑:添加代码。

在视图中发布链接(在本例中为我的练习模型的索引视图):

echo $this->Form->postLink('Delete', array('controller' => 'folders', 'action' => 'delete', $key), array('class' => 'delete', 'confirm' => 'Are you sure? This will also delete all associated exercises.'));

文件夹控制器中的删除操作:

public function delete($id) {
    if ($this->request->is('get')) {
        throw new MethodNotAllowedException();
    }
    if ($this->Folder->delete()) {
        $this->Session->setFlash('Folder '.$id.' has been deleted.', 'default', array('class' => 'success'));
        $this->redirect(array('controller' => 'exercises', 'action' => 'index'));
    }
}

1 个答案:

答案 0 :(得分:1)

CakePHP安全组件允许您指定允许哪些控制器和/或操作向您的操作发送请求。

阅读文档的这一部分Restricting cross controller communication