Я создал класс формы для создания формы, которая позволит пользователю дважды вводить новый пароль для его изменения.
код:
<?php
namespace UserBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
use Symfony\Component\Form\FormError;
use Symfony\Component\Form\CallbackValidator;
class PasswordType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('password', null);
$builder->add('confirmPassword', null, array('label' => 'Confirm Password', 'property_path' => false));
$builder->addValidator(new CallbackValidator(function($form)
{
if($form['confirmPassword']->getData() != $form['password']->getData()) {
$form['confirmPassword']->addError(new FormError('Passwords must match.'));
}
}));
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'UserBundle\Entity\User',
);
}
public function getName()
{
return 'password';
}
}
Теперь,этот класс работает довольно хорошо, НО мои проблемы в том, что, когда я устанавливаю в первом поле пароля тип «пароль», я получаю эту ошибку:
Обнаружена циклическая ссылка в типе «пароль» (определен в классе"UserBundle \ Form \ Type \ PasswordType").
И я не могу оставить для него значение "ноль", так как оно будет использовать обычное поле ввода текста, что не идеально.
Любые люди идеи?