我有问题检查用户是否从UsersController以外的任何控制器登录。从auth组件检索用户信息
我正在尝试创建用户个人资料页面。我将它路由到PagesController,并且当我使用
$this->Auth->user()
它总是返回空值。但是,如果我将它路由到UsersController它工作正常。这是为什么?登录似乎工作正常。
我有问题检查用户是否从UsersController以外的任何控制器登录。从auth组件检索用户信息
我正在尝试创建用户个人资料页面。我将它路由到PagesController,并且当我使用
$this->Auth->user()
它总是返回空值。但是,如果我将它路由到UsersController它工作正常。这是为什么?登录似乎工作正常。
这是因为您只在用户的控制器中包含Auth组件。您应该将其包含在AppController和beforeFilter()中。这样你就可以访问所有的控制器。
你app_controller.php:
class AppController extends Controller {
var $components = array('Auth', 'Session', 'Cookie');
function beforeFilter() {
$this->Auth->authError = 'blabla';
$this->Auth->loginError = 'blabla';
}
}
在你的控制器:
function beforeFilter() {
parent::beforeFilter();
$this->Auth->allow('function1', 'function2', 'function3'); //etc
$this->Auth->autoRedirect = true;
}
什么是autoRedirect for?否则它基本上是我做的。除了我没有添加cookies,不知道它是否重要 – 2011-03-13 22:19:39
autoRedirect:在用户登录页面后重定向用户 – 2011-03-13 22:30:25
不,这不是那个。它包含在AppController中,如果我试图在不包含的情况下访问它,它会抛出错误。 – 2011-03-13 22:16:39