2016-12-01 10 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

Пожалуйста, поделитесь нам последним кодом. Thanks –

+0

Включен ли пользователь? – James

+0

Да пользователь вошел в систему –

ответ

0

первую очередь да она меняется; в 5.2. Файл аутентификации был в приложении/Http/Middleware, но знаю его изменение на vendor/laravel/framework/src/Illuminate/Auth теперь у меня была такая же проблема, как и вы, и поскольку мой проект был 5.2, я запутался, но вы также можете сделать свой собственный файл проверки подлинности в приложение/HTTP/Middleware его работы для меня Я надеюсь, что мой ответ будет полезным для вас

+0

Это не работает для меня. Можете ли вы поделиться своим удостоверением подлинности. Код файла php? и внесли ли вы какие-либо изменения в kernel.php? или любые другие изменения? –

+0

Привет, Это мой Authenticate.php: открытый дескриптор функции ($ request, Closure $ next, $ guard = null) { if (Auth :: guard ($ guard) -> guest()) { if ($ request -> ajax() || $ request-> хочетJson()) { ответ возврата ('Несанкционированный.', 401); } else { return redirect() -> route ('admin.login'); } } return $ next ($ request); } Также я меняю свое ядро ​​на: 'auth' => \ App \ Http \ Middleware \ Authenticate :: class, –

0

что, скорее всего, не очень «Laravel-путь», но обходной путь для этого является определение промежуточного уровня и прохождение в замыкании в методе конструктора.

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

с, то вы можете использовать $this->user в ваших других методов. Это работает, но я не уверен, насколько правильно это решение. Если кто-то знает лучший способ, я тоже его ищу :)