Вам нужно создать промежуточное программное обеспечение для вашего маршрута.
Использование php artisan make: middleware AdminMiddleware. В папке промежуточного программного обеспечения вы найдете новый файл с этим именем.
Положите вашу логику в вашем промежуточном например
public function handle($request, Closure $next)
{
if(Auth::check())
{
return $next($request);
}
else
{
return view('auth.login')->withErrors('You are not logged in');
}
}
После того, как вы сделали свою логику в своем ПО промежуточному слою, можно либо вызвать его в маршруте или сделать промежуточный применяются ко всем маршрутам.
Если вы хотите добавить его ко всем маршрутам, перейдите в Kernal.php и добавьте его в массив $ middleware e.г
protected $middleware = [
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
'Illuminate\Cookie\Middleware\EncryptCookies',
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
'App\Http\Middleware\VerifyCsrfToken',
'App\Http\Middleware\AdminMiddleware',
];
Если вы хотите, чтобы добавить его к конкретным маршрутам только добавить его в переменную $ routeMiddleware и добавить Alis на маршрут. например
protected $routeMiddleware = [
'auth' => 'App\Http\Middleware\Authenticate',
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
'admin' => 'App\Http\Middleware\AdminMiddleware',
];
Затем вы можете добавить его в маршрут в качестве фильтра, например.
Route::get('admin/profile', ['middleware' => 'admin', function()
{
}]);
Примечание :: этот ответ дается StackOverflow пользователя @ Крис Таунсенд
Ref :: Roles with laravel 5, how to allow only admin access to some root
, спасибо за ответы .Но мне нужно разработать без плагина – vision
этот пакет для Laravel 4.2, но ОП спросил о Laravel 5.1 – violator667