Я использую Respect Validation , чтобы попытаться проверить данные, отправленные с помощью запроса POST. При этом я обнаружил проблему, из-за которой исключение из библиотеки Respect Validation не перехватывалось.
$postValidator = v::key('name', v::stringType()->length(3, 50))
->key('email', v::email())
->key('contact', v::phone())
->key('message', v::stringType()->length(7, 1000));
try {
$isValid = $postValidator->assert(['random' => 'thing']);
} catch(Exception $exception) {
return $response->withJson([
'success' => false
]);
}
Проверка следующего возвращает следующую ошибку:
All of the required rules must pass for { "random": "thing" }
Здесь я использовал обобщенный Exception
, который должен перехватывать любые исключения, возникающие в методе assert
. Но похоже, что это не так, и я получаю общую ошибку Slim вместо ответа JSON:
Есть идеи, почему я не могу поймать это исключение?
Проблема, с которой я столкнулся, заключается в том, что Respect Validation выдает исключение, если непослушные пользователи вводят постданные, которые приложение не может обработать. Лично я предпочел бы уважать валидацию, просто игнорировать их, но это не так. Поэтому я хочу поймать исключение, которое выдает Respect, когда пользователь передает неопределенные данные поста и возвращает ответ. За исключением того, что в приведенном выше коде исключение не перехватывается.