Проверка с помощью ParamFetcher очень изящна, но сообщения об ошибках не очень хороши. Он содержит много ненужной информации, которую я не хочу показывать пользователям api.Как изменить сообщение об ошибке, данное ParamFetcher?
Например:
"Параметр запроса parent_id значение 'а' нарушил ограничение (Запрос значение параметра 'а', не соответствуют требованиям '\ D +')"
Я хочу преобразовать это сообщение в более простое сообщение: «parent_id должно быть целым числом»
Как я могу это сделать?
Код, который дает ошибку ниже. И я не вижу способа дать другие сообщения об ошибках.
Возможно, существует еще одна альтернатива для параметров запроса валидации.
$constraint = new Regex(array(
'pattern' => '#^'.$config->requirements.'$#xsu',
'message' => sprintf(
"%s parameter value '%s', does not match requirements '%s'",
$paramType,
$param,
$config->requirements
),
));
Исходный код: https://github.com/FriendsOfSymfony/FOSRestBundle/blob/master/Request/ParamFetcher.php#L220
Если я помню, вы можете использовать пользовательское ограничение в разделе 'requirements'. Попробуйте свой собственный класс 'Regex' с префиксом '@' – Twifty