chungachguk писал(а):vladqa писал(а):
PS: юзать Yii::$app->user в модели - плохая практика. Лучше устанавливайте это значение в сервисе, который эти самые модели создает/сохраняет.
Иначе получите проблемы, если начнете юзать модель вне web-окружения. Например, из консоли.
А с этого места можно поподробнее?
Yii::$app->user возвращает экземпляр класса User, который является компонентом, который, в свою очередь определен только для \yii\web\Application, то есть, только для веб-приложения.
Это логично, потому что User использует web-окружение (куки, сессию, etc..)
Если вы захотите работать с вашей моделью из другого окружения (например, выполняя что-то по крону через php-cli), то вас ждет ошибка, т.к. в \yii\console\Application нет такого компонента и нет никакого окружения.
Тут два варианта: сделать компонент-заглушку User для таких случаев или просто убрать все обращения к User из модели, что более правильно, т.к. модель не должна зависеть от окружения, т.к. она находится на более низком уровне.