Laravel 资源控制器中间件

Laravel Controller Middleware for Resources

我正在尝试在资源路由上使用中间件。

我的路线 -> Route::resource('posts', 'PostController');

我的中间件 ->

$user = Auth::user();

    if(Auth::check()) {
        if($user->is_admin) {
           return $next($request);
        } else {
            return redirect()->route('home');
        } 
    } else {
        return redirect()->route('login');
    }

我的控制器构造函数 ->

$this->middleware('auth'); $this->middleware('admin')->only('posts.destroy');

我的目标是只让管理员销毁 post 而不是其他人。

但是当我使用 php artisan route:list,显示的中间件是web,auth.

我做错了什么?

你可以试试:

$this->middleware('admin')->only('destroy');

Docs