Есть сущьность User. У данной сущьности методы которые валидируются анотациями.
Сущьность
/**
* @ORM\Table(name="app_users")
* @ORM\Entity(repositoryClass="AppBundle\Repository\UserRepository")
* @UniqueEntity(
* "username",
* message="Логин уже используется"
* )
* @UniqueEntity(
* "email",
* message="Email уже используется"
* )
*/
class User implements AdvancedUserInterface, \Serializable
{
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @ORM\Column(type="string", length=25, unique=true)
* @Assert\NotBlank(
* message="Логин не должен быть пустым"
* )
* @Assert\Length(
* min = 3,
* max = 50,
* minMessage = "Логин должен содержать не меньше {{ limit }} символов",
* maxMessage = "Логин должен содержать не меньше {{ limit }} символов"
* )
* @Assert\Regex(
* pattern="/^[A-Za-z0-9_-]+$/",
* message="Логин может состоять только из латинских из букв, цифр, дефисов и подчёркиваний. Длина от 3 до 16 символов."
* )
*/
private $username;
/**
* @ORM\Column(type="string", length=255)
*/
private $plainPassword;
/**
* @ORM\Column(type="string", length=64)
* @Assert\Length(
* min = 6,
* max = 64,
* minMessage = "Пароль должен содержать не меньше {{ limit }} символов",
* maxMessage = "Пароль должен содержать не меньше {{ limit }} символов"
* )
* * @Assert\NotBlank(
* message="Пароль не должен быть пустым"
* )
*/
private $password;
/**
* @ORM\Column(type="string", length=60, unique=true)
* @Assert\NotBlank(
* message="Email не должен быть пустым"
* )
* @Assert\Length(
* min = 6,
* max = 50,
* minMessage = "Email должен содержать не меньше {{ limit }} символов",
* maxMessage = "Email должен содержать не меньше {{ limit }} символов"
* )
* @Assert\Email(
* message = "Email {{ value }} имеет не верный формат.",
* checkMX = true
* )
*/
private $email;
В форме использутся только $password.
$builder
->add('password', RepeatedType::class, array(
'type' => PasswordType::class,
'invalid_message' => 'Поля паролей должны совпадать.',
'options' => array('attr' => array('class' => 'password-field')),
'required' => true,
'first_options' => array('label' => 'Новый пароль'),
'second_options' => array('label' => 'Повторение нового пароля'),
))
->add('save', SubmitType::class)
->add( 'new_password_hidden' , HiddenType :: class, [
'mapped' => false,
])
;
// Класс сущности
$user = new \AppBundle\Entity\User();
// Построение формы
$form = $this->createForm(NewPassword::class, $user);
Валидатор возвращает false так как в объекте валиден только пароль.
var_dump($form->isValid());
Результат bool(false);
!!!Как использовать класс User в форме, что бы $form->isValid() вернул true?