yii2 Trying to get property of non-object - При загрузке модели (передаче её в конструктор)
Primary tabs
Убедитесь что объект не объект не создаётся два раза (используйте для этого Yii::trace())
Дело в том, что объект в конструктор которого вы передаёте метод может создаваться не только вами явно но и каким-то mapping-ом.
В нашем случае был такое решение:
function __construct(User $user) {
parent::__construct();
// $user2 = \Yii::$app->user->identity; // с этим работает всегда
\Yii::trace($user, "User Object");
$this->organization_name = $user->organization->name;
}
дело в том, что yii2 вызывал данный конструктор, но не передавал в него объект user, что приводило к ошибке.
Решение
Решили проблему так:
function __construct(User $user = null) {
parent::__construct();
// $user2 = \Yii::$app->user->identity; // с этим работает всегда
\Yii::trace($user, "User Object");
if ($user) { // проверяем передан ли объект
$this->organization_name = $user->organization->name;
}
}- Log in to post comments
- 4168 reads