我似乎遇到了一个问题,我的控制器没有收到通过postLink表单助手发送给它的帖子数据。
我有多个控制器,所有这些控制器似乎都运行正常,但是,这个特定的控制器不会。
我试图调试,并且发现删除操作似乎没有收到任何Post数据。
查看postLink代码:
echo $this->Form->postLink(__('Delete'), array('controller' => 'tokens', 'action' => 'delete', $data['token']['id']), null, __('Are you sure you want to delete this data?'));
控制器代码:
public function delete($id = null) {
$this->request->allowMethod(['post', 'delete']);
if (!$this->request->is('post')) {
throw new MethodNotAllowedException();
}
$this->Token->id = $id;
if (!$this->Token->exists()) {
throw new NotFoundException(__('Invalid Token'));
}
if ($this->Token->delete()) {
$this->Session->setFlash(__('The token has been deleted.'));
} else {
$this->Session->setFlash(__('The token could not be deleted. Please, try again.'));
}
$this->redirect(array('controller' => 'accounts', 'action' => 'addToken'));
}
我真的不确定我哪里出错或者是什么原因造成的,我一直在绞尽脑汁,整天测试不同的理论,但似乎没有任何改变。所有组件,助手等都以与其他控制器相同的方式加载。
非常感谢任何帮助!
(CakePHP版本2.6.2)
修改 看起来会有一些会话重定向,Cake正在将我重定向到/ accounts / users / sessionStatus。
我不知道为什么会这样。
修改 在进一步挖掘之后,我注意到当我直接将URl输入地址栏时,一切都按预期工作,但是,点击postLink方法生成的链接可以防止帖子数据可用。
我对任何建议/问题/帮助持开放态度,这让我发疯了!