发布前的表格验证

时间:2016-07-25 15:21:38

标签: validation symfony

我希望在提交表单之前已经显示表单错误。 我有数据库数据不完整的表单,所以我想在尝试保存之前显示已经丢失的内容。

然而,$ form-> isValid()仅在提交表单时执行(仅在帖子上发生)。

我尝试了验证器,但这给了我一个错误列表而没有将它们添加到表单中,如果我自己这样做,这似乎是一个糟糕的工作,但是我无法弄清楚源代码如何实现这一点。 / p>

$form = $this->get('form.factory')->create(SchoolFormType::class, $school, $formOptions);
$form->handleRequest($request);
if ($form->isValid()) {
    // ...
}

1 个答案:

答案 0 :(得分:1)

您可以使用以下方式模拟提交:

#operation_logger: customized decorator
class FileView(APIView):
    parser_classes = (MultiPartParser,)#A
    authentication_classes = (BasicAuthentication,)#B

    @permission_classes((IsAuthenticated,))#C
    @method_decorator(csrf_exempt)#D
    @method_decorator(operation_logger)#E
    def dispatch(self, request, *args, **kwargs):#F
       return super(FileView, self).dispatch(request, *args, **kwargs)

    @method_decorator(operation_logger)#G
    def post(self, request):#H
        print "xxxxpost"

请参阅source code中的提交方法。