没有从Kohana中的Auth :: instance-> get_user() - id获取用户ID

时间:2011-07-18 08:55:56

标签: kohana-3 kohana-orm kohana-auth

我正在使用kohana的auth模块。我注册并登录并且工作正常。但当我Auth::instance()->get_user()->id时,我得到NULL

登录时,我使用Auth::instance()->login($validator['email'], $validator['password'])进行操作,然后将用户重定向到主页。

但是当我在其中一个控制器中{i} Auth::instance()->get_user()->id时,我得到NULL

原因是什么。是我必须首先设置一些东西???

3 个答案:

答案 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()不存在)