1

kohanaの認証モジュールを使用しています。登録してログインしましたが、正常に機能しています。しかし、私がそうするとき、私はAuth::instance()->get_user()->id得ますNULL

ログイン中に私はそれをAuth::instance()->login($validator['email'], $validator['password'])行い、ユーザーをホームページにリダイレクトします。

しかし、コントローラーの1つで私がするとき、私はAuth::instance()->get_user()->id得るNULL

何が原因でしょう。最初に何かを設定する必要がありますか?

4

3 に答える 3

1

試してみてくださいAuth::instance()->get_user()->pk()

pk()主キー用です。

KO3で動作します。

于 2011-07-20T11:56:13.623 に答える
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、そしてそれはうまくいっています。

于 2011-07-18T10:19:24.593 に答える
0

Try this:

if ($user->loaded()) {
    $this->complete_login($user);
    return true;
} else {
    return false;
}

See ORM::__call() if you want to know what happends (since ORM::loaded() does not exist)

于 2011-07-18T19:38:42.960 に答える