не получает идентификатор пользователя из Auth :: instance-> get_user () - идентификатор в Kohana - PullRequest
1 голос
/ 18 июля 2011

Я использую модуль авторизации Kohana. Я зарегистрировался и залогинился, и все работает нормально. Но когда я делаю Auth::instance()->get_user()->id, я получаю NULL

При входе в систему я делаю это с Auth::instance()->login($validator['email'], $validator['password']), а затем перенаправляю пользователя на домашнюю страницу.

Но когда в одном из контроллеров я делаю Auth::instance()->get_user()->id, я получаю NULL

В чем причина. Это я должен сначала что-то установить ???

Ответы [ 3 ]

1 голос
/ 20 июля 2011

Попробуйте Auth::instance()->get_user()->pk().

pk() для первичного ключа.

Работает в KO3.

1 голос
/ 18 июля 2011

Моя ошибка

В функции _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 для всех столбцов.

Так что теперь я проверяю $user->id !== NULL и все работает нормально.

0 голосов
/ 18 июля 2011

Попробуйте:

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

См. ORM :: __ call () , если вы хотите знать, что происходит (поскольку ORM ::loaded () не существует)

...