Laravel 5 Resourceful Routes Plus中间件

kil*_*zzy 54 routes laravel laravel-routing laravel-5 laravel-middleware

是否可以将中间件添加到资源丰富路由的所有或部分项目中?

例如...

<?php

Route::resource('quotes', 'QuotesController');
Run Code Online (Sandbox Code Playgroud)

此外,如果可能的话,我想将所有路由放在一边indexshow使用auth中间件.或者这是否需要在控制器内完成?

Mar*_*łek 99

QuotesController构造函数中,您可以使用:

$this->middleware('auth', ['except' => ['index','show']]);
Run Code Online (Sandbox Code Playgroud)

参考:Laravel 5中的控制器中间件


小智 56

您可以使用Route Group和Middleware概念:http: //laravel.com/docs/master/routing

Route::group(['middleware' => 'auth'], function()
{
    Route::resource('todo', 'TodoController', ['only' => ['index']]);
});
Run Code Online (Sandbox Code Playgroud)

  • 大约一岁但是因为我正在尝试做同样的事情不应该是`Route :: resource('todo','TodoController',['except'=> ['index']]);`排除只有auth中间件的索引? (2认同)

Moh*_*nnd 6

在带有 PHP 7 的 Laravel 中,它在写之前对多方法排除对我不起作用

Route::group(['middleware' => 'auth:api'], function() {
        
Route::resource('categories', 'CategoryController', ['except' => 'show,index']);
});
Run Code Online (Sandbox Code Playgroud)

也许这有助于某人。


bar*_*5um 6

Laravel 8.x 更新

网页.php:

Route::resource('quotes', 'QuotesController');
Run Code Online (Sandbox Code Playgroud)

在你的控制器中:

public function __construct()
{
        $this->middleware('auth')->except(['index','show']);
        // OR
        $this->middleware('auth')->only(['store','update','edit','create']);
}
Run Code Online (Sandbox Code Playgroud)

参考:控制器中间件