Могу ли я добавить параметры в свое промежуточное ПО через мой RouteServiceProvider? - PullRequest
1 голос
/ 16 января 2020

Может ли передать параметры моему промежуточному программному обеспечению через моего поставщика услуг RouteService, где я сопоставляю группы маршрутов?

В моем RouteServiceProvider. php

protected function mapAdminRoutes()
{
    Route::prefix('api/admin')
         ->middleware('admin:admin')
         ->namespace($this->namespace)
         ->group(base_path('routes/admin.php'));
}

В моем Kernal. php

    'admin' => [
        'api',
        'permission' => \App\Http\Middleware\VerifyPermission::class,
    ],

Промежуточное программное обеспечение

<?php

namespace App\Http\Middleware;

use App\Models\Permission;
use Closure;

class VerifyPermission
{
    public function handle($request, Closure $next, $permission)
    {
        dd($permission);
    }
}

Я подумал, что вы можете добавить параметр к своему промежуточному программному обеспечению таким способом

Route::group(['middleware' => 'permission:admin'], function () {}

Вы должны быть в состоянии сделать это в своем RouteServiceProvider также хорошо? Я не хочу использовать группы маршрутов в моих файлах маршрутов, поэтому api. php или admin. php

Итак, для подведения итогов я хочу внедрить параметры в мое промежуточное ПО, просто используя мой Kernal. php и мой RouteServiceProvider. php. Я сделал все эти хорошие файлы маршрутов, чтобы сгруппировать все мои маршруты, не используя фактические группы в тех файлах, которые создают грязный код. И теперь мне все еще нужно ввести параметры, подобные этому

Route::group(['middleware' => ['permission:admin']], function () {
    Route::get('/test', 'TestController@test');
});

Я знаю, что вы можете использовать конструктор контроллера, чтобы сделать это, но это также не то, что я хочу. Это должно быть решено, просто используя Kernal. php и RouteServiceProvider, верно? Поскольку группы определены там, вы сможете указать, какую группу вы используете.

...