php artisan route::list给了我一个错误:试图获取非对象的属性
我打字的时候php artisan route::list给了我一个错误:试图获取非对象的属性,php,laravel,Php,Laravel,我打字的时候 php artisan route:list 我明白了 Trying to get property of non-object 我打字的时候 php artisan route:list -v 我明白了 这是相关代码 public function getDefaultSettings() { $user = Auth::user(); $categorySetting = $user->settings; // <- line 31 ..
php artisan route:list
我明白了
Trying to get property of non-object
我打字的时候
php artisan route:list -v
我明白了
这是相关代码
public function getDefaultSettings()
{
$user = Auth::user();
$categorySetting = $user->settings; // <- line 31
...
}
知道怎么回事吗?Auth::user()只在有用户登录时返回用户模型,因此当您在浏览器上添加时,将返回您的用户
但是,当您从cli调用route:list时,$user为null,因此“正在尝试获取非对象的属性”
您需要弄清楚的是route:list调用getDefaultSettings()的原因。我猜您正在routes.php文件中执行一些调用该函数的操作
解决此问题的一个快速方法是,在对用户模型执行任何其他操作之前,使用检查方法检查是否有用户登录:
public function getDefaultSettings()
{
if (Auth::check()) {
$user = Auth::user();
$categorySetting = $user->settings;
...
}
}
接得好!我会试试看,也许会奏效!TxDone,tx,谢谢你的帮助!但我什么都没做。。。。我只是在控制器的构造函数中调用它:(很高兴它有帮助!看看你的堆栈跟踪和Laravel的源代码,似乎route:list调用控制器的构造函数来确定它使用了什么中间件。这就解释了你的问题。
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
}
public function getDefaultSettings()
{
if (Auth::check()) {
$user = Auth::user();
$categorySetting = $user->settings;
...
}
}