Auth::user 试图获取非对象的属性

Posted

技术标签:

【中文标题】Auth::user 试图获取非对象的属性【英文标题】:Auth::user Trying to get property of non-object 【发布时间】:2017-05-20 18:11:42 【问题描述】:

我正在使用 laravel 5.3 并使用 Multi-Auth Hesto 包。 我使用视图作曲家将我当前的 Auth::user 传递给 Welcome.blade

我已经登录了我的 Customer/Home.blade,但是当我转到 Welcome.blade 并访问当前的 Auth::useran 错误时显示“尝试获取非对象的属性”

这是我的 Viewmcomposers/AuthComposer.php

class AuthComposer

    public $currentUser;

 public function __construct()
    
        $this->currentUser = Auth::User();
        View::share([ 'currentUser' => $this->currentUser ]);
    

   public function compose(View $view)
    
        $view->with('currentUser', Auth::user()->name);
    

App/Providers/ComposerServiceProvider.php

 public function boot()
    

    view()->composer('welcome', function ($view) 
    
        $currentUser = Customer::where('name', Auth::user()->name);
        $view->with('welcome', $currentUser );    
    ); 
    

配置/App.php

 App\Providers\ComposerServiceProvider::class,

我的客户路线

Route::get('/home', function () 
    $users[] = Auth::user();
    $users[] = Auth::guard()->user();
    $users[] = Auth::guard('customer')->user();
    return view('customer.home');
)->name('home');

我只是在我的 routes/web.php 中为我的welcome.blade 调用它

Route::get('/', 'WelcomeController@showWelcome');

【问题讨论】:

任何堆栈跟踪 - laravel 出错时显示的那堆函数调用? 我更新了我的问题,我的第 18 行将是这个 $view->with('currentUser', Auth::user()->name);但是当我删除 ->name 时,它​​什么也没有显示。 Welcome.blade 视我为客人 好吧,尝试将dd(Auth::user()) 放在ComposerServiceProvider.php 中的第18 行之前,我想知道用户是否真的从未经过身份验证并且Auth::user() 返回null。 它返回'null' 呃,好吧,你是如何处理用户登录的? 【参考方案1】:

使用身份验证;

在页面顶部它可能会对您有所帮助。

显示完整的错误。

【讨论】:

以上是关于Auth::user 试图获取非对象的属性的主要内容,如果未能解决你的问题,请参考以下文章

试图在 Laravel 4 中获取非对象的属性

Laravel Auth::user() 关系

试图获取非对象的属性

Blade - 试图获取非对象的属性

laravel 试图获取非对象的属性

试图获取非对象的属性“主机名”