[英]Get authenticated user in laravel 5.3 controller
我試圖在Laravel 5.3的控制器中獲取Auth::user()
,但每次都顯示為null
。 Laravel 5.3是否已對此進行了更改?
@if (Auth::guest())
<li><a href="{{ url('/user/login') }}">Login</a></li>
<li><a href="{{ url('/user/register') }}">Register</a></li>
@else
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">
{{ Auth::user()->name }} <span class="caret"></span>
{{ Auth::user()}}
</a>
即使我已經登錄,它也會每次進入
首先,它會發生變化; 在5.2中,身份驗證文件位於app / Http / Middleware上,但知道將其更改為vendor / laravel / framework / src / Illuminate / Auth時,我遇到了像您一樣的問題,因為我的項目是5.2,所以我感到困惑,但是您也可以自己制作對app / Http / Middleware上的文件進行身份驗證對我有用,我希望我的回答對您有用
最有可能的不是很“ laravel-way”,而是一種解決方法是定義一個中間件,並在構造方法中傳入一個閉包。
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->user = Auth::user();
return $next($request);
});
}
從那時起,您可以在其他方法中使用$this->user
。 它可以工作,但是我不確定該解決方案是否合適。 如果有人知道更好的方法,我也在尋找它:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.