Laravel 我想使用View::share共享Auth::user()
以下是我写的资料来源 app\Providers\AppServiceProvider.phpLaravel 我想使用View::share共享Auth::user(),laravel,Laravel,以下是我写的资料来源 app\Providers\AppServiceProvider.php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\View; use Illuminate\Support\Facades\Auth; class AppServiceProvider extends ServiceProvider { public
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\u id”
当我在别处使用
Auth::user()->user_id
时,它显示正确。但不是在这里。原因是什么?您的用户表中是否有一列名为“user\u 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);
}
}
我通过下面的链接找到了原因 我修改了源代码如下,它的工作
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);
}
}
}
您可以使用Auth::id(),可能它在较旧版本的laravel中工作正常。“user_id”是我新创建的列。此外,如果我使用
Auth::user()->id
,我将得到一个“尝试获取非对象的属性'id'的错误”。检查您是否正在获取Auth对象。请尝试此代码在类开始之前添加“use Auth”,并在boot()内写入dd(Auth::user());检查是否返回了它代码>。结果是“null”。但是,某些模型页面输出正确。