因此,在找出Controller.php的構造器中的共享視圖不再有效,因爲它總是返回null
到Auth::user()
,我正在尋找一種不同的方式來做到這一點。
我只是尋找一種方法,將當前登錄用戶的$user
變量傳遞給我所有的視圖。
上一頁方式這5.2及以下工作:
public function __construct()
{
view()->share('signed_in', Auth::check());
view()->share('user', Auth::user());
}
此不再起作用。我還能如何分享變量?
我曾嘗試:
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->user = Auth::user();
$this->signed_in = Auth::guest();
view()->share('signed_in', $this->signed_in);
view()->share('user', $this->user);
return $next($request);
});
}
但上面的代碼不起作用。它沒有「未定義的變量$用戶」錯誤加載頁面,但它只是顯示導航欄,然後沒有別的。由於某種原因,它也弄亂了網站CSS。
有沒有其他辦法可以做到這一點? 請幫忙。謝謝。
默認情況下,Auth :: user()和Auth :: check()函數在視圖中可用,是否有某個特定的原因,您仍然希望使用'$ user'? – IzzEps
那麼主要原因是我試圖將我的大型應用程序從5.2升級到5.3,並且它已經使用'$ user'來訪問當前用戶以使其易於讀取和寫入。做'$ user-> can('doSomething')比做'Auth :: user() - > can('doSomthing'')更容易。 –
也許這個答案對你有幫助:https:// laracasts .com/discuss/channels/laravel/viewshare-not-working-in-51 /回覆/ 90831 – IzzEps