Я думаю, что это происходит потому, что наблюдатель создает экземпляр вашей пользовательской модели до того, как начался цикл запроса, и это означает, что ваш экземпляр User
еще не существует и не был связан с фасадом Auth.
Таким образом, Auth::user()
возвращает null
, и вы пытаетесь получить собственность от него. Чтобы решить эту проблему, можно проверить, существует ли пользовательский экземпляр или нет:
public function __construct() {
parent::__construct();
if (optional(Auth::user())->dbname !== null) {
Config::set('database.connections.tenant.database', auth()->user()->dbname);
$this->connection = 'tenant';
}
}
Помощник optional
возвращает значение доступного свойства (dbname
в вашем случае), если и только если аргумент не равен NULL, в противном случае весь вызов вернет нулевое значение, вместо этого будет выдано исключение.
Если это не так, возможно, обновите вопрос с помощью стека ошибок и кода / действия, которое вызывает ошибка