В контроллере
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 ()?
flash () не перенаправляет, он отображает. Она очень похожа на функцию render (), она продолжит выполнение скрипта, в отличие от функции redirect ().
но если вы все еще хотите использовать это
Вы должны использовать следующее в конфигурационном файле.
Configure::write('debug', 0);
Обновить
после добавления этого в main.php используйте как
$this->flash(__("Some message for the user here..."), array("action" => "index"));
это будет работать идеально. следить этот forrefrence
Render! = Redirect
Если вам нужно перенаправить на страницу реферера, вы можете использовать:
$this->redirect($this->referer());
если вы хотите перенаправить на другой контроллер:
$this->redirect(('controller' => 'YOURCONTROLLER', 'action' => 'YOURACTION'));
или если вы хотите перенаправить на другое действие в одном контроллере:
$this->redirect(('action' => 'YOURACTION'));