php artisan route :: list给我一个错误:试图获取非对象的属性

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php artisan route :: list给我一个错误:试图获取非对象的属性脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
当我输入

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
 Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at /home/vagrant/Code/app/CategorySettings.PHP:31
 App\CategorySettings->getdefaultsettings() at /home/vagrant/Code/app/Http/Controllers/CategoryController.PHP:27
 App\Http\Controllers\CategoryController->__construct() at n/a:n/a
 ReflectionClass->newInstanceargs() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Container/Container.PHP:776
 Illuminate\Container\Container->build() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Container/Container.PHP:627
 Illuminate\Container\Container->;make() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Application.PHP:674
 Illuminate\Foundation\Application->make() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.PHP:170
 Illuminate\Foundation\Console\RouteListCommand->getControllerMiddleware() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.PHP:151
 Illuminate\Foundation\Console\RouteListCommand->getMiddleware() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.PHP:119
 Illuminate\Foundation\Console\RouteListCommand->getRouteinformation() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.PHP:89
 Illuminate\Foundation\Console\RouteListCommand->getRoutes() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/RouteListCommand.PHP:76
 Illuminate\Foundation\Console\RouteListCommand->fire() at n/a:n/a
 call_user_func_array() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Container/Container.PHP:503
 Illuminate\Container\Container->call() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Console/Command.PHP:150
 Illuminate\Console\Command->execute() at /home/vagrant/Code/vendor/symfony/console/Command/Command.PHP:256
 Symfony\component\Console\Command\Command->run() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Console/Command.PHP:136
 Illuminate\Console\Command->run() at /home/vagrant/Code/vendor/symfony/console/Application.PHP:838
 Symfony\Component\Console\Application->doRunCommand() at /home/vagrant/Code/vendor/symfony/console/Application.PHP:189
 Symfony\Component\Console\Application->doRun() at /home/vagrant/Code/vendor/symfony/console/Application.PHP:120
 Symfony\Component\Console\Application->run() at /home/vagrant/Code/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.PHP:107
 Illuminate\Foundation\Console\Kernel->handle() at /home/vagrant/Code/artisan:35

这是相关的代码

public function getDefaultSettings()
{
    $user = Auth::user();
    $categorySetting = $user->settings;   // <- line 31
...
}

错误消息似乎告诉我$user的错误
事情是当我dd $categorySetting或$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;
    ...
    }
}

脚本宝典总结

以上是脚本宝典为你收集整理的php artisan route :: list给我一个错误:试图获取非对象的属性全部内容,希望文章能够帮你解决php artisan route :: list给我一个错误:试图获取非对象的属性所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。