Php 由于使用paramconverter进行序列化而导致内部错误

Php 由于使用paramconverter进行序列化而导致内部错误,php,symfony,Php,Symfony,我有一个API,它接受多个输入值。其中一个是约会。 发送日期后,一切正常。 但是,当用户不发送日期时,我有一个错误500,错误消息如下: 无效的日期时间“某些无效数据”,格式应为Y-m-d\TH:i:sP 所以我想检查发送的数据是否具有所需的格式 但我不明白事情是怎么回事,希望你能帮忙 这就是我所拥有的 /** * * @Rest\Post( * path = "/signup", * name = "api_users_add" * ) * @Rest\View(S

我有一个API,它接受多个输入值。其中一个是约会。 发送日期后,一切正常。 但是,当用户不发送日期时,我有一个错误500,错误消息如下:

无效的日期时间“某些无效数据”,格式应为Y-m-d\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 from Profile有关,当出生不是日期时间时,他不能“反序列化”

问题是,为了避免这个内部错误,我想检查发送的内容(就像我在我的状态中所做的那样)。但我找不到在我的代码中处理这个问题的地方

谢谢你的帮助

考虑到这一点:


我要查找的是验证错误的指定位置。

可能重复@Dave,这与我的问题有什么关系?我可能是哑巴或瞎子,但我看不见。查看500个错误的列表,你会发现在哪里查找的详细信息,以找出真正发生的事情(提示,这可能与你的想法无关)。我已经在查看我的开发日志…我知道错误的id:无效日期时间“YY--dd mm”,预期格式为Y-m-d\TH:i:sP。这是您的问题中应该包含的重要信息。请编辑它并包含该数据。预期日期的API似乎没有检查以确保其日期格式正确,并且试图在不知道其有效/正确的情况下对其进行操作。可能与@Dave重复这与我的问题有什么关系?我可能是哑巴或瞎子,但我看不见。查看500个错误的列表,你会发现在哪里查找的详细信息,以找出真正发生的事情(提示,这可能与你的想法无关)。我已经在查看我的开发日志…我知道错误的id:无效日期时间“YY--dd mm”,预期格式为Y-m-d\TH:i:sP。这是您的问题中应该包含的重要信息。请编辑它并包含该数据。期望日期的API似乎没有检查以确保其获取的日期格式正确,并且试图在不知道其有效/正确的情况下对其进行操作。