所以在一个模型的索引中,我有一个相关模型的列表。在列表中,我包括删除后链接。
然而,当一个视图属于另一个视图时,使用删除后链接删除一个模型似乎会引发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'));
}
}
CakePHP安全组件允许您指定允许哪些控制器和/或操作向您的操作发送请求。
阅读本部分限制跨控制器通信的文档