Я пытаюсь использовать промежуточное программное обеспечение на маршруте ресурса.Laravel Controller Middleware для ресурсов
Мой путь -> Route::resource('posts', 'PostController');
Мои Middleware ->
$user = Auth::user();
if(Auth::check()) {
if($user->is_admin) {
return $next($request);
} else {
return redirect()->route('home');
}
} else {
return redirect()->route('login');
}
Мой контроллер Constructor ->
$this->middleware('auth'); $this->middleware('admin')->only('posts.destroy');
Моя цель, чтобы только администраторы уничтожить пост и не другие.
Но когда я использую php artisan route:list
, показано промежуточное ПО, web, auth.
Что я здесь делаю неправильно?
Вы зарегистрировались к промежуточному в ядре? В любом случае см. [Здесь] (https://laravel.com/docs/5.3/middleware#registering-middleware) – Andrew
@Andrew Ya добавляется как '' admin '=> \ App \ Http \ Middleware \ AdminMiddleware :: class, ' –
Для аргументации попробуйте добавить промежуточное ПО по всему миру и посмотреть, попадает ли он на него. Как и для всех ваших маршрутов с группой маршрутов и поместите «die()» или что-то в самой себе и получите доступ к любому маршруту. – Andrew