Forms Symfony 2表格验证

Forms Symfony 2表格验证,forms,validation,symfony,Forms,Validation,Symfony,我想将我的表单错误输出到screent,但我不能这样做 {{ form_errors(form) }} - in my view file is not working for me. 如果表单无效,我可能需要使用$form->getErrors()。然后将其传递给模板? 我试图回答,但没有得到任何结果。请帮帮我 我的操作(联系人表单),我尝试返回呈现的页面,但出现错误: public function contactAction(Request $request) { $form

我想将我的表单错误输出到screent,但我不能这样做

{{ form_errors(form) }} - in my view file is not working for me. 
如果表单无效,我可能需要使用$form->getErrors()。然后将其传递给模板? 我试图回答,但没有得到任何结果。请帮帮我

我的操作(联系人表单),我尝试返回呈现的页面,但出现错误:

 public function contactAction(Request $request)
{
    $form = $this->createForm(new ContactType());
    $formView = $form->createView();
    $form->handleRequest($request);

    if ($form->isValid()) {
         ....
    } else {
        $errors = $form->getErrors();

        return $this->render('VputiMainBundle:Main:contact.html.twig', array('form' => $formView, 'errors' => $errors));
    }

    return $this->render('VputiMainBundle:Main:contact.html.twig', array('form' => $formView));
}
联系人类型:

 public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder->add('name', 'text', array(
        'label' => 'Ваше имя',
        'attr' => array(
            'placeholder' => 'Ваше имя',
            'class' => 'form-control',
            'name' => 'InputName',
            'id' => "InputName"
        ),
    ));
    $builder->add('email', 'email', array(
        'label' => 'Ваш e-mail',
        'attr' => array(
            'placeholder' => 'Ваш e-mail',
            'class' => "form-control",
            'id' => "InputEmail",
            'name' => "InputEmail",
        ),
    ));
    $builder->add('subject', 'text', array(
        'label' => 'Тема вопроса',
        'attr' => array(
            'placeholder' => 'Тема вопроса',
            'class' => "form-control",
            'id' => "InputSubject",
            'name' => "InputSubject",
        ),
    ));
    $builder->add('body', 'textarea', array(
        'label' => 'Вопрос',
        'attr' => array(
            'placeholder' => 'Вопрос',
            'name' => "InputMessage",
            'id' => "InputMessage",
            'class' => "form-control",
            'rows' => "5",
        ),
    ));
    $builder->add('recaptcha', 'ewz_recaptcha', array(
        'label' => 'Код с картинки',
        'attr' => array(
            'options' => array(
                'theme' => 'clean',
            )
        ),
        'mapped' => false,
        'constraints' => array(
            new True(),
        )
    ));
    $builder->add('submit', 'submit', array(
        'label' => 'Спросить',
        'attr' => array(
            'name' => "submit",
            'id' => "submit",
            'value' => "Submit",
            'class' => "btn btn-info pull-right",
        ),
    ));
}

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $constraints = new Collection(array(
        'name' => array(
            new NotBlank(array('message' => 'Name should not be blank.')),
            new Length(array('min' => 2)),
        ),
        'email' => array(
            new NotBlank(array('message' => 'Email should not be blank.')),
            new Email(array('message' => 'Invalid email address.')),
        ),
        'subject' => array(
            new NotBlank(array('message' => 'Subject should not be blank.')),
            new Length(array('min' => 3)),
        ),
        'body' => array(
            new NotBlank(array('message' => 'Message should not be blank.')),
            new Length(array('min' => 5)),
        ),
    ));

    $resolver->setDefaults(array(
        'constraints' => $constraints,
    ));
}

public function getName()
{
    return 'contact_form';
}

查看

查看

查看

查看

根据讨论,如果有任何全局错误,可以使用
{{form_errors(form)}}

你可能没有这样的错误。对于特定于字段的错误,您应该将
form\u errors
form.field\u name
一起使用,即
{{form\u erros(form.name)}}


根据讨论,如果存在任何全局错误,可以使用
{{form_errors(form)}}

你可能没有这样的错误。对于特定于字段的错误,您应该将
form\u errors
form.field\u name
一起使用,即
{{form\u erros(form.name)}}


根据讨论,如果存在任何全局错误,可以使用
{{form_errors(form)}}

你可能没有这样的错误。对于特定于字段的错误,您应该将
form\u errors
form.field\u name
一起使用,即
{{form\u erros(form.name)}}


根据讨论,如果存在任何全局错误,可以使用
{{form_errors(form)}}

你可能没有这样的错误。对于特定于字段的错误,您应该将
form\u errors
form.field\u name
一起使用,即
{{form\u erros(form.name)}}


这对我来说很有用

在捆绑包中
捆绑包名称/Resource/config/validation.yml
您需要添加要显示的错误消息,例如,这就是我的联系人表单
validation.yml
的样子

ClickTeck\BlogBundle\Entity\Comments: // change this according to your setup
        properties:
            name:
              - NotBlank: {message: "Please provide your name"}
            email:
              - NotBlank: {message: "Please provide youe email"}
              - Email:
                          message: '"{{ value }}" is not valid.'
            comment:
              - NotBlank: {message: "Please enter your comment"}
然后在你的小枝中显示一条消息,比如说名字字段

{% if(form_errors(form.name)) %}
{{ form_errors(form.name) }}
{% endif %}
在控制器内部,您需要进行检查

if ($form->isValid()) {....your processing code here }
最后在
app/config/config.yml中启用验证

framework:
    validation:      { enabled: true, enable_annotations: false }

这就是我的工作

在捆绑包中
捆绑包名称/Resource/config/validation.yml
您需要添加要显示的错误消息,例如,这就是我的联系人表单
validation.yml
的样子

ClickTeck\BlogBundle\Entity\Comments: // change this according to your setup
        properties:
            name:
              - NotBlank: {message: "Please provide your name"}
            email:
              - NotBlank: {message: "Please provide youe email"}
              - Email:
                          message: '"{{ value }}" is not valid.'
            comment:
              - NotBlank: {message: "Please enter your comment"}
然后在你的小枝中显示一条消息,比如说名字字段

{% if(form_errors(form.name)) %}
{{ form_errors(form.name) }}
{% endif %}
在控制器内部,您需要进行检查

if ($form->isValid()) {....your processing code here }
最后在
app/config/config.yml中启用验证

framework:
    validation:      { enabled: true, enable_annotations: false }

这就是我的工作

在捆绑包中
捆绑包名称/Resource/config/validation.yml
您需要添加要显示的错误消息,例如,这就是我的联系人表单
validation.yml
的样子

ClickTeck\BlogBundle\Entity\Comments: // change this according to your setup
        properties:
            name:
              - NotBlank: {message: "Please provide your name"}
            email:
              - NotBlank: {message: "Please provide youe email"}
              - Email:
                          message: '"{{ value }}" is not valid.'
            comment:
              - NotBlank: {message: "Please enter your comment"}
然后在你的小枝中显示一条消息,比如说名字字段

{% if(form_errors(form.name)) %}
{{ form_errors(form.name) }}
{% endif %}
在控制器内部,您需要进行检查

if ($form->isValid()) {....your processing code here }
最后在
app/config/config.yml中启用验证

framework:
    validation:      { enabled: true, enable_annotations: false }

这就是我的工作

在捆绑包中
捆绑包名称/Resource/config/validation.yml
您需要添加要显示的错误消息,例如,这就是我的联系人表单
validation.yml
的样子

ClickTeck\BlogBundle\Entity\Comments: // change this according to your setup
        properties:
            name:
              - NotBlank: {message: "Please provide your name"}
            email:
              - NotBlank: {message: "Please provide youe email"}
              - Email:
                          message: '"{{ value }}" is not valid.'
            comment:
              - NotBlank: {message: "Please enter your comment"}
然后在你的小枝中显示一条消息,比如说名字字段

{% if(form_errors(form.name)) %}
{{ form_errors(form.name) }}
{% endif %}
在控制器内部,您需要进行检查

if ($form->isValid()) {....your processing code here }
最后在
app/config/config.yml中启用验证

framework:
    validation:      { enabled: true, enable_annotations: false }



您是否正在从您的控制器操作传递
表单
?是的,如果有帮助,我可以将我的控制器添加到问题中是的,请添加控制器操作代码。
表单错误(表单)
用于不特定于任何字段的全局错误。您能在任何字段上尝试
form\u errors
?i、 e.
form\u错误(form.name)
无结果。。。页面刚刚重新加载…您是否正在从控制器操作传递
表单
?是的,如果有帮助,我可以将控制器添加到问题中是的,请添加控制器操作代码。
表单错误(表单)
用于不特定于任何字段的全局错误。您能在任何字段上尝试
form\u errors
?i、 e.
form\u错误(form.name)
无结果。。。页面刚刚重新加载…您是否正在从控制器操作传递
表单
?是的,如果有帮助,我可以将控制器添加到问题中是的,请添加控制器操作代码。
表单错误(表单)
用于不特定于任何字段的全局错误。您能在任何字段上尝试
form\u errors
?i、 e.
form\u错误(form.name)
无结果。。。页面刚刚重新加载…您是否正在从控制器操作传递
表单
?是的,如果有帮助,我可以将控制器添加到问题中是的,请添加控制器操作代码。
表单错误(表单)
用于不特定于任何字段的全局错误。您能在任何字段上尝试
form\u errors
?i、 e.
form\u错误(form.name)
无结果。。。页面只是重新加载…我的问题没有答案我的问题没有答案我的问题没有答案我的问题没有答案你是否在你的
验证中添加了
你的命名空间\你的bundle name \ Entity \你的entoty:
?你的
实体在哪里?你能分享你的实体代码吗?如果你不使用实体,也许你会想读这篇文章,我不使用实体,非常有趣,在分析器中我看到无效字段上的错误,但是转储为
{{dump(form_errors(form.name))}
给出
字符串(0)”
。如果您查看我的FOrmType类,您会发现我已经使用了约束。您是否在
验证中添加了
您的命名空间\您的捆绑包名称\实体\您的Entity:
。yml
?您的
实体在哪里?如果你不使用实体,你能分享你实体的代码吗