2016-10-10 4 views
0

Я пытаюсь изменить способ отображения ошибок формы в форме сброса пароля FosUser. Я хочу получать сообщения об ошибках в форме пароля, а не выше, как в случае по умолчанию.Переопределение формы сброса пароля FosUser

Это FormType

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('plainPassword', LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\RepeatedType'), array(
     'type' => LegacyFormHelper::getType('Symfony\Component\Form\Extension\Core\Type\PasswordType'), 
     'options' => array('translation_domain' => 'FOSUserBundle'), 
     'attr' => [ 
      'class' => 'form-group has-feedback' 
     ], 
     'first_options' => array('label' => false, 
      'attr' => [ 
       'placeholder' => 'New Password' 
      ] 
      ), 
     'second_options' => array('label' => false, 
      'attr' => [ 
       'placeholder' => 'Repeat Password' 
      ]), 
     'invalid_message' => 'fos_user.password.mismatch', 
    )); 
} 

Шаблон

<body class="reset-page"> 
<div class="reset-box"> 
    <div class="logo"> 
     <a href=""> 
      <img src=""> 
     </a> 
    </div> 
    <div class="reset-box-body"> 
    {{ form_start(form, { 'action': path('fos_user_resetting_reset', {'token': token})}) }} 
     {% for passwordField in form.plainPassword %} 
      <div class="form-group has-feedback"> 
       {{ form_widget(passwordField, { 'attr': {'class': 'form-control'} }) }} 
       {{ form_errors(passwordField, { 'attr': {'class': 'form-error'} }) }} 
      </div> 
     {% endfor %} 

     <input type="submit" class="btn btn-primary btn-block" value="Submit" /> 

    {{ form_end(form) }} 
    </div> 
</div> 

Но в результате все ошибки оказываются выше формы.

+0

Возможный дубликат [Переопределение шаблона FOSUserBundle по умолчанию, без эффекта] (http://stackoverflow.com/questions/24729115/overriding-default-fosuserbundle-template-no-effect) – Stannio

ответ

-1

Переместите раздел {{form_errors (passwordField, {'attr': {'class': 'form-error'}})}} туда, где вы хотите, чтобы ошибки отображались и что должно работать. В настоящий момент ошибки будут отображаться в форме, так как они устанавливаются. Надеюсь, это поможет!

Смежные вопросы