使用CakePHP 2.1
我有以下代碼CakePHP的 - 控制器::閃光燈()不重定向
public function getForm($id=null){
$this->loadModel('DynamicFormResponse');
/**
* Check if form exists
*/
$this->form_schema= $this->DynamicForm->isValidForm($id);
if($this->form_schema == false){
$this->flash("Invalid form", $this->referer(
array('controller'=>"pages", 'action' => 'display')
));
}
...
...
我面臨的問題是,調用$this->flash()
呈現閃存頁面,但還繼續執行控制器。
所以,除非我做這樣的事情
if($this->form_schema == false){
$this->flash("Invalid form", $this->referer(
array('controller'=>"pages", 'action' => 'display')
));
return;
}
控制器不會終止。
主要的問題出現時,_crsf_error
方法被調用
function _csrf_error() {
$this->flash("csrf Error", $this->referer(
array('controller'=>"pages", 'action' => 'display')
));
}
由於閃光法不重定向它沒有提供任何CSRF保護可言。 使用return;
後$this->flash()
在_crsf_error
方法不起作用。
PS:可用here
異常似乎是處理它的最佳方式。謝謝 – Gautam 2012-03-21 15:06:03
自2.7.0版以來,setFlash已被棄用:您應該只使用Flash來創建Flash消息。 setFlash()將被完全刪除在蛋糕3.0 – 2017-10-09 21:10:49