Внутренняя ошибка из-за сериализации с paramconverter - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...