2016-12-01 4 views
0

Auth::user()을 Laravel 5.3의 컨트롤러에서 가져 오려고하는데, 매번 null이 표시됩니다. 이것이 Laravel 5.3에서 변경 되었습니까?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> 

그것은 매번 경우 상태에서 나는 예는 변경 모든

+3

우리에게 최신 코드를 알려주십시오. 감사합니다 –

+0

사용자가 로그인 했습니까? – James

+0

예 사용자가 로그인했습니다 –

답변

0

처음 접속하고가는 경우에도, 5.2 인증 파일이 app/Http/Middleware에 있었지만 vendor/laravel/framework/src/Illuminate/Auth 에 대한 변경 사항을 알았습니다. 여러분과 같은 문제가 있었고 프로젝트가 5.2이기 때문에 혼란 스럽지만 응용 프로그램/HTTP/미들웨어에 자신을 인증 파일은 나를 에 대한 의 작품은 당신이

가장 가능성이없는 아주 "laravel 방향"무엇
+0

이것은 저에게 적합하지 않습니다. 당신은 당신의 인증을 공유 할 수 있습니까? PHP 파일 코드? kernel.php를 변경 했습니까? 또는 다른 변경 사항이 있습니까? –

+0

안녕하세요, 이건 내 Authenticate.php입니다 : 공용 함수 핸들 ($ 요청, 폐쇄 $ 다음, $ 가드 = null) { if (Auth :: guard ($ guard) -> guest()) { if ($ request -> ajax() || $ request-> wantsJson()) { 반송 응답 ('Unauthorized.', 401); } else { return redirect() -> 경로 ('admin.login'); } } return $ next ($ request); } 또한 내 커널을 'auth'=> \ App \ Http \ Middleware \ Authenticate :: class로 변경합니다. –

0

하지만에 대한 해결 방법은 미들웨어 및 통과를 정의하는 내 대답은 유용 희망 생성자 메서드의 클로저에서. 당신이 다른 방법에 $this->user을 사용할 수 있습니다에서

public function __construct() 
{ 
    $this->middleware(function ($request, $next) { 
     $this->user = Auth::user(); 
     return $next($request); 
    }); 
} 

. 작동하지만 솔루션의 적절한 방법을 잘 모르겠습니다. 누군가가 더 나은 방법을 알고 있다면, 나는 또한 그것을 찾고 있어요 :)