Flash() 方法显示消息但不在 CakePHP 2 中重定向

Flash() method shows the message but not redirecting in CakePHP 2

在控制器中

public function add(){
    $this->loadModel('User'); //load model      
    if($this->request->is('post')){ 
        $filename=$this->User->checkFileUpload($this->request->data);
        $this->User->set($this->request->data); //set data to model                         
        if ($this->User->validates()){
            $datas = array(
                    'User' => array(
                                'name' => $this->request->data['User']['name'],
                                'email'=>$this->request->data['User']['email'],
                                'password'=>$this->request->data['User']['password'],
                                'image'=>$filename
                        )
                    );  
            $pathToUpload=  WWW_ROOT . 'upload/';           
            move_uploaded_file($this->request->data['User']['image']['tmp_name'],$pathToUpload.$filename);                      
            // prepare the model for adding a new entry
            $this->User->create();
            // save the data
            if($this->User->save($datas)){
                //$this->Session->setFlash('User Information has been saved!');
                return $this->Flash('User Information has been saved!',array('action' => 'index'));
                //return $this->redirect(array('action' => 'index'));
            }
        } else {
            $errors = $this->User->validationErrors; //handle errors    
        }   
    }
    //$this->layout = NULL;
    $this->viewpPath='Users';
    $this->render('add');
}

在上面的代码中,我使用 flash() 方法在操作后将用户定向到新页面。此方法显示消息但不在给定 url 中重定向。 请帮我。在 flash() 方法的帮助下重定向在这里我做错了什么?

渲染 != 重定向

如果您需要重定向到引用页,您可以使用:

$this->redirect($this->referer());

如果你想重定向到不同的控制器:

$this->redirect(('controller' => 'YOURCONTROLLER', 'action' => 'YOURACTION'));

或者如果您想重定向到同一控制器中的不同操作:

$this->redirect(('action' => 'YOURACTION'));

flash() 不会重定向,它会呈现。它和render()函数非常相似,它会继续执行脚本,不像redirect()函数。

但是如果你还想用这个

您应该在配置文件中使用以下内容。

Configure::write('debug', 0);

更新 将其添加到 main.php 后使用

$this->flash(__("Some message for the user here..."), array("action" => "index"));

它会很好地工作。关注 this 以供参考