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 以供参考
在控制器中
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 以供参考