Php 向Laravel路由添加多个中间件

Php 向Laravel路由添加多个中间件,php,laravel,Php,Laravel,根据,我可以添加auth中间件,如下所示: Route::group(['middleware' => 'auth'], function () { Route::get('/', function () { // Uses Auth Middleware }); Route::get('user/profile', function () { // Uses Auth Middleware }); }); Rout

根据,我可以添加
auth
中间件,如下所示:

Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function ()    {
        // Uses Auth Middleware
    });

    Route::get('user/profile', function () {
        // Uses Auth Middleware
    });
});
Route::group(['middleware' => ['web']], function() {
  // Uses all Middleware $middlewareGroups['web'] located in /app/Http/kernel.php?
  Route::resource('blog','BlogController'); //Make a CRUD controller
});
我还看到添加了如下中间件:

Route::group(['middleware' => 'auth'], function () {
    Route::get('/', function ()    {
        // Uses Auth Middleware
    });

    Route::get('user/profile', function () {
        // Uses Auth Middleware
    });
});
Route::group(['middleware' => ['web']], function() {
  // Uses all Middleware $middlewareGroups['web'] located in /app/Http/kernel.php?
  Route::resource('blog','BlogController'); //Make a CRUD controller
});
我怎么能两者兼得呢


PS.如果您对下面四行代码所做的事情有任何见解,请提供意见

将中间件分配到一条路由,您可以使用单个中间件(第一个代码段)或中间件组(第二个代码段)。使用中间件组,您可以同时将多个中间件分配给一个路由。您可以找到有关中间件组的更多详细信息

要同时使用(单个中间件和中间件组),您可以尝试以下方法:

Route::group(['middleware' => ['auth', 'web']], function() {
  // uses 'auth' middleware plus all middleware from $middlewareGroups['web']
  Route::resource('blog','BlogController'); //Make a CRUD controller
});

您还可以为路由分配多个中间件:

Route::get('/', function () {
//
})->middleware('first', 'second');

您还可以使用
路由
门面的
中间件
静态方法执行以下操作:

Route::middleware(['middleware1', 'middlware2'])
    ->group(function () {
        // Your defined routes go here
    });
中间件
方法接受一个中间件的单个字符串或字符串数组
对于一组中间件。

Ah,所以
Route::group(['middleware'=>['web']],function(){})
Route::group(['middleware'=>'web'],function(){})执行相同的功能?而且,第一个代码段没有使用组中间件?脚本包括
Route::group(…)所以我会申请一个小组。1。是
Route::group(['middleware'=>['web']],function(){})
Route::group(['middleware'=>'web'],function(){})执行相同的步骤2。第一个代码段使用的是“auth”中间件,它是内置的Laravel中间件,而不是组中间件。在这两种情况下,您都在使用
Route::group(…)
,因此在这两种情况下,它都将应用于路由组,而不是单个路由。请描述您正在执行的操作,并将
Laravel 7
移出代码框^^
Route::middleware(['auth:api'])->middleware(['second:middleware'])
    ->prefix('yourPrefix')->group(function () {
        //Add your routes here
});