我刚开始尝试学习cakephp auth,我只是复制并粘贴了代码,试图理解它。我无法弄清楚直接重定向是什么
// app控制器 //是空的我知道在某些情况下你把它放在这里,我只是在用户控制器中测试它
//用户控制器
public $components = array('Paginator',
'Session',
'Auth' => array(
'loginAction' => array(
'controller' => 'users',
'action' => 'login',
'plugin' => 'users'
),
'authError' => 'Did you really think you are allowed to see that?',
'authenticate' => array(
'Form' => array(
'fields' => array('username' => 'email')
)
)
)
);
public function beforeFilter() {
$this->Auth->allow('index', 'view');
}
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirectUrl());
// Prior to 2.3 use
// `return $this->redirect($this->Auth->redirect());`
} else {
$this->Session->setFlash(
__('Username or password is incorrect'),
'default',
array(),
'auth'
);
}
}
}
我理解前过滤器有意义,它只允许索引和视图,我有另一个名为admin的控制器,如果你没有登录,它会重定向到登录页面
但是对于somme的原因,它会一直重定向到用户/用户/登录,我希望它转到用户/登录?我该如何解决这个问题?
答案 0 :(得分:0)
你必须把控制器放在你去的地方和行动
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
return $this->redirect(array('controller' => 'users', 'action' => 'login'));
}
} else {
$this->Session->setFlash(__('Invalido nombre de usuario o contraseña'));
}
}