Всем доброго времени суток, у меня возникла следующая проблема: При авторизации вызываю метод 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 и т.д., но итог все равно один. Помогите, кто может, пожалуйста, всю голову уже сломал. Заранее спасибо всем неравнодушным!
Yii::$app->user
это инстанс компонента работы с пользователем.
Для получения модели пользователя в твоем случае надо обратиться к методу getIdentity()
.
Данный метод вернет IdentityInterface
, но объектом будет тот, который указан в конфиге в секции components.user.identityClass
$user = \Yii::$app->getUser()->getIdentity();
echo $user->email;
Функция берет пароль и возвращает только те, которые соответствуют заданной длиннеКак можно в цикл запихать проверку на валидность? Требования...
Сама задача стоит непосредственно для виджета WordpressВ каждом артикле блога присутствуют ссылки типа "https://www
yii2-advanced, есть аккаунт, к нему нужно привязать id компании
У меня есть скрипт рассылающий почтуПримерно такой, здесь не суть приводить полный код , вопрос не в этом