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

时间:2019-02-27 14:24:23

标签: php symfony

我有一个采用多个输入值的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之前已经触发过。

我想这与Profile中的@ParamConverter有关,当出生日期不是DateTime时,后者无法“反序列化”。

事情是,我想检查发送的内容(就像我对我的状况所做的那样),以避免发生此内部错误。但是我找不到我的代码在哪里处理。

感谢您的帮助。

考虑到这一点:symfony doc for Param converter fos rest bundle

我要寻找的是找到指定了validateErrors的位置。

0 个答案:

没有答案