Можно ли передать переменную для маршрутизации файлов, таких как api.php, для использования в качестве имени промежуточного программного обеспечения? - PullRequest
2 голосов
/ 08 мая 2019

Я хочу использовать пакет "Laratrust" для управления разрешениями в моем проекте.

в laratrust может определять промежуточное ПО следующим образом:

Route::group(['middleware' => ['role:admin']], function() {
    Route::get('dashboard/posts', 'posts@pagesController');
}

Я хочу иметь маршрут внутри промежуточного ПОв другом промежуточном программном обеспечении, подобном следующему:

Route::middleware('mainMiddleware')->group(function ($role) {
    Route::group(["middleware" => ["role:$role"]], function () {
        Route::get('dashboard/posts', 'posts@pagesController');
    });
});

Что мне нужно: передать переменную $ role, созданную в "mainMiddleware", в маршрут и использовать в качестве имени промежуточного программного обеспечения.Есть ли способ, которым я могу это сделать?

1 Ответ

1 голос
/ 08 мая 2019

Возможно, вам понадобится новое промежуточное программное обеспечение. Я сделал образец, если это соответствует вашим потребностям

class CheckRoleMiddleware
{
    public function handle($request, Closure $next)
    {
        //get current user role
        $role = get_current_user_role(); //sample only
        if (Auth::user()->hasRole($role)) {
            return $next($request);
        }


        return error_message() //sample only
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...