Как вы, возможно, уже знаете из документации, настраиваемый класс Request Laravel ( make: request с использованием artisan) предоставляет возможность хранить внутри себя правила проверки. Итак, у меня есть следующие примеры кода, чтобы лучше описать проблему приоритезации:
- 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 в обоих местах. Как мне провести рефакторинг кода? Есть ли для этого хорошие подходы?