我正在使用kohana的auth模块。我注册并登录并且工作正常。但当我Auth::instance()->get_user()->id
时,我得到NULL
登录时,我使用Auth::instance()->login($validator['email'], $validator['password'])
进行操作,然后将用户重定向到主页。
但是当我在其中一个控制器中{i} Auth::instance()->get_user()->id
时,我得到NULL
原因是什么。是我必须首先设置一些东西???
答案 0 :(得分:1)
我的错误
在_login
modules/auth/classes/kohana/auth/orm.php
函数中
因为我正在做以下
$user = ORM::factory('user');
$user->where('email', ' = ', $email)
->and_where('password', ' = ', $password)
->find();
// TODO remember to be done
if ($user !== null) {
$this->complete_login($user);
return true;
} else {
return false;
}
在上面我检查$ user是否为null但如果电子邮件和密码不匹配,则将为所有列创建NULL
值的用户实例。
所以现在我正在检查$user->id !== NULL
,它工作正常。
答案 1 :(得分:1)
尝试Auth::instance()->get_user()->pk()
。
pk()
用于主键。
适用于KO3。
答案 2 :(得分:0)
试试这个:
if ($user->loaded()) {
$this->complete_login($user);
return true;
} else {
return false;
}
如果你想知道会发生什么,请参阅ORM::__call()(因为ORM :: loaded()不存在)