如何仅保护控制器的特定路由?

时间:2020-11-02 00:46:51

标签: laravel

所以我有一个Resource控制器,它的路由定义如下:

Route::resource('product', 'App\Http\Controllers\ProdutoController')->middleware('auth');

但是,我想不登录用户就可以访问该控制器内部的“ show”方法。如何将“ auth”中间件应用于控制器中除“ show”方法之外的所有方法?

1 个答案:

答案 0 :(得分:0)

在您的ProdutoController内,您可以使用Construct方法来应用身份验证中间件,以及某些类似这样的路由:

/**
     * Instantiate a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth')->except(['index', 'show']); 
    }