我想使用View :: share共享Auth :: user()

问题描述 投票:0回答:2

以下是我写的来源。

应用程序\供应商\ AppServiceProvider.php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Auth;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        View::share('user_id', Auth::user()->user_id);
    }
}

发生以下错误:

“试图获取非对象的属性'user_id'”

当我在其他地方使用Auth::user()->user_id时,它显示正确。但不是在这里。是什么原因?

laravel
2个回答
1
投票

您的users表是否包含名为“user_id”的列,或者您的意思是用户表“id”列?如果您的意思是用户表ID列将您的代码更新到下面。

namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Auth;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        View::share('user_id', Auth::user()->id);
    }
}

0
投票

我通过以下链接找到了原因。

Laravel - How to get current user in AppServiceProvider

我修改了源代码,如下所示。

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Illuminate\Support\Facades\View;
use Illuminate\Support\Facades\Auth;

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        view()->composer('*', function ($view)
        {
            View::share('user_id', Auth::user()->user_id);
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.