我需要將當前登錄的用戶共享到所有視圖。我試圖在AppServiceProvider.php
文件中使用view->share()
方法。如何在Laravel 5的所有視圖中共享Auth :: user?
我有以下:
<?php namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use Illuminate\Contracts\Auth\Guard;
class AppServiceProvider extends ServiceProvider {
public function boot(Guard $guard)
{
view()->share('guard', $guard);
view()->share('user', $guard->user());
}
//..
}
然而,當我打了一個視圖(登錄之後),user
變量爲空。奇怪的是,$guard->user
(受保護的屬性,不是公共方法user())不是。我得到的輸出如下:
注特派守>用戶變量填充,但用戶變量爲空。
如果調用'check()'和'getUser()'方法,你會得到什麼? –
'check()'返回'false'和'getUser()'返回NULL' – Chris
我覺得它的「檢查」太早了,但顯然'boot'方法假設等待所有服務已經註冊並且權限去 – Chris