Yii2 Авторизация не могу получить свойства User

109
11 декабря 2018, 13:00

Всем доброго времени суток, у меня возникла следующая проблема: При авторизации вызываю метод FindByEmail:

public static function findByEmail($email)
{
    return User::find()->where(['email' => $email])->one();
}

из этой функции:

public function getUser()
{
    if ($this->_user === false) {
        var_dump(User::findByEmail($this->email));
        $this->_user = User::findByEmail($this->email);
    }
    return $this->_user;
}

В принципе все должна быть хорошо, НО на экран выводится следующее:

object(app\models\User)#104 (12) {
    ["email"]=>
    NULL
    ["password"]=>
    NULL
["_attributes":"yii\db\BaseActiveRecord":private]=>
    array(7) {
        ["id"]=>
        int(1)
        ["name"]=>
        string(14) "Василий"
        ["email"]=>
        string(11) "vas@mail.ru"
        ["password"]=>
        string(5) "11111"
        ["phone"]=>
        string(11) "89999999999"
        ["stat"]=>
        int(0)
        ["timestat"]=>
        int(1)
     }

Т.е. данные фактически ловятся, НО при обращении

Yii::$app->user->email

получается NULL, а значение из базы я достать не могу... Уже все перепробовал, Yii::$app->user->identity->email, $user = User::findOne(1) (кстати, также - находит только id и не видит всех остальных свойств), Yii::$app->user->attributes и т.д., но итог все равно один. Помогите, кто может, пожалуйста, всю голову уже сломал. Заранее спасибо всем неравнодушным!

Answer 1

Yii::$app->user это инстанс компонента работы с пользователем. Для получения модели пользователя в твоем случае надо обратиться к методу getIdentity().

Данный метод вернет IdentityInterface, но объектом будет тот, который указан в конфиге в секции components.user.identityClass

$user = \Yii::$app->getUser()->getIdentity(); 
echo $user->email;
READ ALSO
Проверка переменной на валидность UTF-8

Проверка переменной на валидность UTF-8

Функция берет пароль и возвращает только те, которые соответствуют заданной длиннеКак можно в цикл запихать проверку на валидность? Требования...

163
Найти в тексте ссылку PHP

Найти в тексте ссылку PHP

Сама задача стоит непосредственно для виджета WordpressВ каждом артикле блога присутствуют ссылки типа "https://www

144
Как сделать выбор компании аккаунта?

Как сделать выбор компании аккаунта?

yii2-advanced, есть аккаунт, к нему нужно привязать id компании

163
Как сделать паузу в выполнении скрипта на php

Как сделать паузу в выполнении скрипта на php

У меня есть скрипт рассылающий почтуПримерно такой, здесь не суть приводить полный код , вопрос не в этом

180