Как повлиять на приоритет выполнения пользовательского класса запроса? - PullRequest
0 голосов
/ 05 августа 2020

Как вы, возможно, уже знаете из документации, настраиваемый класс Request Laravel ( make: request с использованием artisan) предоставляет возможность хранить внутри себя правила проверки. Итак, у меня есть следующие примеры кода, чтобы лучше описать проблему приоритезации:

  1. api route
    Route::post('/suggest', [SuggestionController::class, 'store'])
    ->middleware(['auth:sanctum']);
Класс запроса

    class SuggestionRequest extends FormRequest
    {
        public function authorize()
        {
            return $this->user() && $this->user()->hasRole('sales manager');
        //  return true;
        }
    
        public function rules() {...}
    }

Здесь я хочу принудительно настроить промежуточное ПО моего поставщика auth: sanctum ( который проверяет, У пользователя есть токен ), который должен быть выполнен до того, как класс SuggestionRequest вызовет свой собственный метод authorize , потому что нет смысла проверять данные запроса, а затем проверять, аутентифицирован ли пользователь. Кроме того, нет необходимости иметь одинаковые logi c в обоих местах. Как мне провести рефакторинг кода? Есть ли для этого хорошие подходы?

...