Symfony2-FOSUserBundle-在自定义重置页面上检查密码确认不匹配
我正在构建一个自定义表单,供用户重置密码。除了检查密码不匹配外,所有操作都已完成。如果输入的两个字段不匹配,则不会出现错误-但是表单将重新加载为空,因此我知道它已被捕获 在形式vars dump中,我有{{dump(form.new.first.vars.errors)} } 下面是我如何显示表单的Symfony2-FOSUserBundle-在自定义重置页面上检查密码确认不匹配,symfony,fosuserbundle,Symfony,Fosuserbundle,我正在构建一个自定义表单,供用户重置密码。除了检查密码不匹配外,所有操作都已完成。如果输入的两个字段不匹配,则不会出现错误-但是表单将重新加载为空,因此我知道它已被捕获 在形式vars dump中,我有{{dump(form.new.first.vars.errors)} } 下面是我如何显示表单的 <div class="container"> <div class="row"> <div class="col-sm-4 single">
<div class="container">
<div class="row">
<div class="col-sm-4 single">
<div class="panel r-panel panel-default">
<div class="panel-heading">
<h1>Enter New Password</h1>
</div>
<div class="panel-body">
<form action="{{ path('fos_user_resetting_reset', {'token': token}) }}" {{ form_enctype(form) }} method="POST" class="fos_user_resetting_reset">
<div class="form-group">
<label for="{{form.new.first.vars.id}}"> Password
<span class="text-primary">*</span>
</label>
{{ form_widget(form.new.first, {'attr': {'class': 'form-control'}}) }}
</div>
<label for="{{form.new.second.vars.id}}"> Confirm
<span class="text-primary">*</span>
</label>
{{ form_widget(form.new.second, {'attr': {'class': 'form-control'}}) }}
</div>
<input type="submit" value="Reset Password" />
</div>
{{ form_end(form) }}
</div>
</div>
</div>
</div>
您还可以尝试使用Symfony2表单可用的重复表单类型。 这可以替换您使用的两个输入字段。 重复表单字段显示2个输入字段,并检查它们是否相等 您应该将add
'error\u bubbling'=>true
设置为重复字段
有关重复表单类型的详细信息,请参阅:
例如:
$builder->add('new', 'repeated', array(
'type' => 'password',
'options' => array('translation_domain' => 'DocdataUserBundle'),
'first_options' => array('label' => 'Password'),
'second_options' => array('label' => 'Repeat password'),
'invalid_message' => 'fos_user.password.mismatch',
'error_bubbling' => true
))
错误可能会显示在整个表单上,在这种情况下,您没有显示这些错误的方法。您是否尝试在您的
标记后添加{{form_errors(form)}}
{% if passwords_mismatch %} ERROR! {% endif %}
$builder->add('new', 'repeated', array(
'type' => 'password',
'options' => array('translation_domain' => 'DocdataUserBundle'),
'first_options' => array('label' => 'Password'),
'second_options' => array('label' => 'Repeat password'),
'invalid_message' => 'fos_user.password.mismatch',
'error_bubbling' => true
))
->add('plainPassword', 'repeated', array(
'type' => 'password',
'options' => array('translation_domain' => 'FOSUserBundle'),
'first_options' => array('label' => 'form.password'),
'second_options' => array('label' => 'form.password_confirmation'),
'invalid_message' => 'fos_user.password.mismatch'))