У меня есть API, который принимает несколько входных значений.Одним из них является свидание.Когда дата отправляется, все в порядке.Но когда пользователь не отправляет дату, у меня появляется ошибка 500 с этим сообщением об ошибке:
Недопустимая дата и время "Некоторые недопустимые данные", ожидаемый формат Ymd \ TH: i: sP.
Итак, я хотел проверить, имеют ли отправленные данные требуемый формат.
Но я не понимаю, как все работает, надеюсь, вы поможете.
Это то, что у меня есть
/**
*
* @Rest\Post(
* path = "/signup",
* name = "api_users_add"
* )
* @Rest\View(StatusCode=201, serializerGroups={"user_detail"})
* @ParamConverter(
* "user",
* converter="fos_rest.request_body",
* options={"deserializationContent"={"groups"={"Deserialize"}}},
* )
* @ParamConverter(
* "profile",
* converter="fos_rest.request_body",
* options={"deserializationContent"={"groups"={"Deserialize"}}},
* )
*/
public function postUserAction(Request $request, User $user, Profile $profile)
{
if (!preg_match("^[0-9]{4}-[0-1][0-9]-[0-3][0-9]$",$profile->getBirth())){
return new JsonResponse([
'success' => false,
'message' => "Date d'anniversaire au mauvais format"
]);
}
}
Но на самом деле я никогда не вхожу в это условие, ошибка 500 срабатывает раньше.
Я думаю, это как-то связано с @ParamConverter изПрофиль, который не может "десериализовать", когда рождение не является DateTime.
Дело в том, что я хотел бы проверить, что отправлено (как я сделал в моем состоянии), чтобы избежать этой внутренней ошибки.Но я не могу найти, где это обрабатывается в моем коде.
Спасибо за помощь.
Учитывая это: symfony doc для Param converter fos rest bundle
Я ищу, чтобы найти, где указаны ошибки validation.