小编Jer*_*emy的帖子

获取所有错误以及错误所连接的字段

我正在使用Symfony2表单来验证对API的POST和PUT请求.表单处理将请求数据绑定到底层实体,然后验证实体.除收集错误外,一切都很顺利.我正在使用FOSRestBundle并抛出一个Symfony\Component\HttpKernel\Exception\HttpException,其中包含400状态代码和一条包含表单错误消息的消息,如果验证失败.FOSRestBundle处理将其转换为JSON响应.我必须执行所有这些的控制器方法如下所示(所有字段将其错误冒充到表单):

protected function validateEntity(AbstractType $type, $entity, Request $request)
{
    $form = $this->createForm($type, $entity);
    $form->bind($request);
    if (! $form->isValid()) {
        $message = ['Invalid parameters passed.'];
        foreach ($form->getErrors() as $error) {
            $message[] = $error->getMessage();
        }
        throw new HttpException(Codes::HTTP_BAD_REQUEST, implode("\n", $message));
    }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当我通过$ form-> getErrors()收集表单级错误时,我只能访问错误消息而不是错误连接到的字段的名称.当POST或PUT参数对应于相关实体的id时,这是一个特殊问题.如果提交的值无效,则该错误消息只是"此值无效",在此上下文中不是很好.理想情况下,我想做以下任何一种情况:

  • 对于每个错误,获取它所连接的字段名称,以便我可以格式化消息,如"fieldname:error message"
  • 如果不可能,是否可以为无效的实体类型自定义错误消息,以便显示比"此值无效"更好的内容?

php symfony symfony-2.1

4
推荐指数
4
解决办法
2万
查看次数

标签 统计

php ×1

symfony ×1

symfony-2.1 ×1