不要在Symfony 2中验证表单

时间:2016-06-30 08:11:24

标签: forms symfony

这是我的表单,我在控制器中构建:

resizeMode="cover"

表单是Param对象的列表,它显示不错,但由于某种原因,当我提交表单时,我在entity_types字段上有一个错误,说明虽然选择了一个Param,但值不能为空(即使是默认情况下) )。

所以我想知道我是否可以禁用验证。

什么时候我将这个validation_groups设为false?如果它在$ entity_options中,我已经尝试了它并且它不起作用。

TY

2 个答案:

答案 0 :(得分:0)

您应该修改这样的选项(需要和需要组):

$entity_options = array(
    'class' => 'MyBundle:Param',
    'property' => 'description',
    'query_builder' => function(EntityRepository $er) {
            return $er->getParamsFromCategorieQueryBuilder(MyController::$category_for_list);
    },
    'required' => false,
    'validation_groups' => false,
    'label' => 'Donnée à afficher'
);

如果错误发生在Form类本身上,则应该更改:

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'validation_groups' => false,
    ));
}

答案 1 :(得分:0)

防止验证的方法是:

$formBuilder->addEventListener(FormEvents::POST_SUBMIT, function (FormEvent $event) {
        $event->stopPropagation();
    }, 900);

它阻止调用验证事件。

giosh94mhz给我的解决方案不好,因为即使使用validation_group = false,仍然会进行一些验证。