以下是我写的来源。
应用程序\供应商\ 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
时,它显示正确。但不是在这里。是什么原因?
您的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);
}
}
我通过以下链接找到了原因。
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);
}
}
}