php artisan route :: list给我一个错误:试图获取非对象的属性
发布时间:2020-12-13 16:59:00 所属栏目:PHP教程 来源:网络整理
导读:当我输入 php artisan route:list 我明白了 Trying to get property of non-object 当我输入 php artisan route:list -v 我明白了 Exception trace: () at /home/vagrant/Code/app/CategorySettings.php:31 IlluminateFoundationBootstrapHandleException
当我输入
php artisan route:list 我明白了 Trying to get property of non-object 当我输入 php artisan route:list -v 我明白了 Exception trace: () at /home/vagrant/Code/app/CategorySettings.php:31 IlluminateFoundationBootstrapHandleExceptions->handleError() at /home/vagrant/Code/app/CategorySettings.php:31 AppCategorySettings->getDefaultSettings() at /home/vagrant/Code/app/Http/Controllers/CategoryController.php:27 AppHttpControllersCategoryController->__construct() at n/a:n/a ReflectionClass->newInstanceArgs() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Container/Container.php:776 IlluminateContainerContainer->build() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Container/Container.php:627 IlluminateContainerContainer->make() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:674 IlluminateFoundationApplication->make() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:170 IlluminateFoundationConsoleRouteListCommand->getControllerMiddleware() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:151 IlluminateFoundationConsoleRouteListCommand->getMiddleware() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:119 IlluminateFoundationConsoleRouteListCommand->getRouteInformation() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:89 IlluminateFoundationConsoleRouteListCommand->getRoutes() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.php:76 IlluminateFoundationConsoleRouteListCommand->fire() at n/a:n/a call_user_func_array() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Container/Container.php:503 IlluminateContainerContainer->call() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Console/Command.php:150 IlluminateConsoleCommand->execute() at /home/vagrant/Code/vendor/symfony/console/Command/Command.php:256 SymfonyComponentConsoleCommandCommand->run() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Console/Command.php:136 IlluminateConsoleCommand->run() at /home/vagrant/Code/vendor/symfony/console/Application.php:838 SymfonyComponentConsoleApplication->doRunCommand() at /home/vagrant/Code/vendor/symfony/console/Application.php:189 SymfonyComponentConsoleApplication->doRun() at /home/vagrant/Code/vendor/symfony/console/Application.php:120 SymfonyComponentConsoleApplication->run() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:107 IlluminateFoundationConsoleKernel->handle() at /home/vagrant/Code/artisan:35 这是相关的代码 public function getDefaultSettings() { $user = Auth::user(); $categorySetting = $user->settings; // <- line 31 ... } 错误消息似乎告诉我$user的错误 User {#418 ▼ #table: "users" #fillable: array:16 [?] #hidden: array:2 [?] #connection: null #primaryKey: "id" #perPage: 15 +incrementing: true +timestamps: true #attributes: array:20 [?] #original: array:20 [?] #relations: array:1 [?] #visible: [] #appends: [] #guarded: array:1 [?] #dates: [] #dateFormat: null #casts: [] #touches: [] #observables: [] #with: [] #morphClass: null +exists: true +wasRecentlyCreated: false } 知道什么是错的??? 解决方法
Auth :: user()仅在用户登录时返回User模型,因此当您在浏览器上dd时,将返回您的用户.
但是,当您从cli调用route:list时,$user为null,因此“尝试获取非对象的属性”. 您需要弄清楚的是路由:list调用getDefaultSettings()的原因.我的猜测是你在routes.php文件上做了一些调用该函数的东西. 解决问题的一种快速方法是使用check方法检查是否有用户在使用用户模型执行任何其他操作之前登录: public function getDefaultSettings() { if (Auth::check()) { $user = Auth::user(); $categorySetting = $user->settings; ... } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |