Forms FOSUserBundle验证表单:正确显示验证字符串

Forms FOSUserBundle验证表单:正确显示验证字符串,forms,validation,symfony,fosuserbundle,Forms,Validation,Symfony,Fosuserbundle,我意识到这真的是一个新手问题 我只是不明白如何“捕获”验证消息(例如“用户名已存在”)并正确显示,而不是默认情况下如何显示 我不能发布图片,所以这里有一个复制粘贴: 电子邮件:[在这里我可以看到电子邮件字段] 电子邮件已被使用 用户名:[在这里我可以看到用户名字段] 用户名已被使用 密码:[在这里我可以看到pwd字段] 验证:[在这里我可以看到pwd验证字段] Name:[在这里我可以看到我添加的Name字段] 我希望能够捕捉到这些消息,并可能在名称字段旁边显示小的“弹出窗口”,或者做任

我意识到这真的是一个新手问题

我只是不明白如何“捕获”验证消息(例如“用户名已存在”)并正确显示,而不是默认情况下如何显示

我不能发布图片,所以这里有一个复制粘贴:

电子邮件:[在这里我可以看到电子邮件字段]

  • 电子邮件已被使用
用户名:[在这里我可以看到用户名字段]

  • 用户名已被使用
密码:[在这里我可以看到pwd字段]

验证:[在这里我可以看到pwd验证字段]

Name:[在这里我可以看到我添加的Name字段]

我希望能够捕捉到这些消息,并可能在名称字段旁边显示小的“弹出窗口”,或者做任何我喜欢的事情(但不要这样显示它们)

我的代码如下:

这是被覆盖的register.html.twig

{% extends "FOSUserBundle::layout.html.twig" %} {% block
fos_user_content %} This is my registration form <br> {% include
"FOSUserBundle:Registration:register_content.html.twig" %} {% endblock
fos_user_content %}
{%extends“FOSUserBundle::layout.html.twig”%}{%block
fos_user_content%}这是我的注册表
{%include FOSUserBundle:Registration:register_content.html.twig“%}{%endblock fos_用户_内容%}
这是register_content.html.twig(未触及)

{%trans\u默认\u域'FOSUserBundle'%}
{{form_widget(form)}
以下是覆盖的registrationFormType:

<?php

namespace AppBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class RegistrationFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // add your custom field
        $builder->add('name');
    }

    public function getParent()
    {
        return 'fos_user_registration';
    }

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

我明白了,我只需阅读表单以及如何管理表单错误的部分

编辑: 我不得不将register_content.html.twig更改如下:

{%trans\u默认\u域'FOSUserBundle'%}
{{form_errors(form)}}
{{form_label(form.email)}
{{form_小部件(form.email)}
{{form_errors(form.email)}
{{form_标签(form.username)}
{{form_小部件(form.username)}
{{form_errors(form.username)}}
{{form_label(form.plainPassword.first)}
{{form_小部件(form.plainPassword.first)}
{{form_errors(form.plainPassword.first)}
{{form_label(form.plainPassword.second)}
{{form_小部件(form.plainPassword.second)}
{{form_errors(form.plainPassword.second)}
{{form_标签(form.name)}
{{form_小部件(form.name)}
{{form_errors(form.name)}}
{{form_rest(form)}

Symfony文档非常全面。你能把你的答案贴出来吗?我把我的答案编辑成帖子,这是我的答案@Jason Roman。
<?php

namespace AppBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class RegistrationFormType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        // add your custom field
        $builder->add('name');
    }

    public function getParent()
    {
        return 'fos_user_registration';
    }

    public function getName()
    {
        return 'my_user_registration';
    }
}
{% trans_default_domain 'FOSUserBundle' %}

<form action="{{ path('fos_user_registration_register') }}" {{ form_enctype(form) }} method="POST"
class="fos_user_registration_register">
    {{ form_errors(form) }}
    <div>
        {{ form_label(form.email) }}
        {{ form_widget(form.email) }}
        {{ form_errors(form.email) }}
    </div>
    <div>
        {{ form_label(form.username) }}
        {{ form_widget(form.username) }}
        {{ form_errors(form.username) }}
    </div>
    <div>
        {{ form_label(form.plainPassword.first) }}
        {{ form_widget(form.plainPassword.first) }}
        {{ form_errors(form.plainPassword.first) }}
    </div>
    <div>
        {{ form_label(form.plainPassword.second) }}
        {{ form_widget(form.plainPassword.second) }}
        {{ form_errors(form.plainPassword.second) }}
    </div>
    <div>
        {{ form_label(form.name) }}
        {{ form_widget(form.name) }}
        {{ form_errors(form.name) }}
    </div>
        {{ form_rest(form) }}
    <div>
        <input type="submit" value="{{ 'registration.submit'|trans }}" />
    </div>
</form>