我在 Cakephp 2.5.3 中遇到了 Auth.redirect 功能的问题。以下是场景:
设想
有一个受登录保护的操作(控制器=>TalkComments,操作=>添加)。使用 POST HTML 方法将数据提交到此操作。现在,如果用户未登录,则将用户带到登录视图。用户登录后,它成功地将用户重定向到所需的控制器和操作。问题是,它也没有发送 POST 数据,因此 add() 函数没有被执行。
如何使 Auth.redirect 也存储我的帖子数据并在调用 redirectUrl 后发送它。
以下是我的代码:
用户控制器.php
class UsersController extends AppController {
//put your code here
public function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('add', 'login');
}
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirectUrl());
}
$this->Session->setFlash(__('Invalid username or password, try again'));
}
}
public function logout() {
return $this->redirect($this->Auth->logout());
}
public function isAuthorized() {
return true;
}
}
TalkCommentsController.php
class TalkCommentsController extends AppController {
//put your code here
public function add() {
if ($this->request->is('post')) {
$this->TalkComment->create();
if ($this->TalkComment->save($this->request->data)) {
$this->Session->setFlash(__('Comment Saved'));
return $this->redirect($this->referer());
}
$this->Session->setFlash(__('Could not post comment'));
}
}
public function isAuthorized() {
return true;
}
}
请让我知道我是否还需要其他任何东西。
提前致谢 :)