I am using Laravel 5.2 and have a problem with middleware. There is code in route.php
use Illuminate \ Contracts \ Auth \ Access \ Gate;
Route :: group (['middleware' => 'web'], function () {
Route :: auth ();
Route :: get ('/', ' HomeController@index ');
});
Route :: group (['prefix' => 'admin', 'middleware' => 'admin'], function () {
Route :: get ('/', function () {
return view ('admin.index');
});
Route :: get ('/ user', function () {
return view ('admin.user');
});
});
Kernel.php:
protected $ routeMiddleware = [
...
'admin' => \ App \ Http \ Middleware \ AdminPanel :: class,
];
Adminminpan.php
namespace App \ Http \ Middleware;
use closure;
use Illuminate \ Support \ Facades \ Auth;
use App \ Role;
class AdminPanel
{
public function handle ($ request, Closure $ next)
{
$ user = Auth :: user ();
dd ($ user);
if ($ user) {
$ role = Role :: whereName ('admin') -> first ();
if ($ user-> hasRole ($ role)) {
return $ next ($ request);
}
}
return redirect ('/');
}
So,
$user = Auth::user ()
always returns null. Thanks for the suggestions!
source share