首页 > 解决方案 > 如果我需要后端控制器的中间件构造函数?

问题描述

在 Laravel 6 中,我定义了路线:

Route::group(['middleware' => 'auth:api', 'prefix' => 'adminarea', 'as' => 'adminarea.'], function ($router) {

    Route::resource('ads', 'Admin\AdController');
    Route::group(['prefix' => 'ads'], function ($router) {
        Route::resource('/{ad_id}/categories', 'Admin\AdCategoriesController');
    });
    ...

app/Http/Controllers/Admin/AdCategoriesController.php 的构造函数有以下行:

<?php

namespace App\Http\Controllers\Admin;

use Auth;
...

class AdCategoriesController extends Controller
{
    private $requestData;


    public function __construct()
    {
        $this->middleware('auth:api', ['except' => []]);
        $request           = request();
        $this->requestData = $request->all();
    }

我想知道上面的构造函数中是否真的需要中间件?

谢谢!

标签: laravel

解决方案


如您所知,Middleware可以分配给Routes 和Controllers

  • 当分配给 aRoute时,它只会影响那个Route

  • 当分配给 aaRoute::group时,它将影响Route该组中的所有 s

  • 当分配给Controller构造函数时,它将影响所有方法(及其对应Route的s)Controller

  • 当分配给一个Controller方法时,它将影响该方法(以及相应Route的 s)


推荐阅读