Форма Symfony проверяет выбранных членов сущности

Я использую форму symfony для проверки данных входа, поэтому я привязываю ее к классу сущности (который имеет проверку для всех членов), и мне нужна форма только для проверки адреса электронной почты и пароля. Поэтому в классе формы я не добавляю в форму адрес электронной почты и пароль. Однако, когда данные отправляются, он по-прежнему проверяет их и показывает ошибки в верхней части формы.

Как мне заставить его не проверять других участников (город, пол и т. Д.) Без изменения класса сущности.

Итак, есть мой класс сущности с: именем, электронной почтой, полом, паролем, городом. Все поля обязательны

Форма входа с адресом электронной почты и паролем. Я все еще получаю ошибки для двух других


person SoWhat    schedule 08.05.2013    source источник


Ответы (1)


Использовать группы проверки ...

Класс сущности:

// src/Acme/BlogBundle/Entity/User.php
namespace Acme\BlogBundle\Entity;

use Symfony\Component\Security\Core\User\UserInterface;
use Symfony\Component\Validator\Constraints as Assert;

class User implements UserInterface
{
    /**
    * @Assert\Email(groups={"registration"})
    */
    private $email;

    /**
    * @Assert\NotBlank(groups={"registration"})
    * @Assert\Length(min=7, groups={"registration"})
    */
    private $password;

    /**
    * @Assert\Length(min = "2")
    */
    private $city;
}

Затем, когда вы создадите свою форму:

$form = $this->createFormBuilder($users, array(
    'validation_groups' => array('registration'),
))->add(...);

Тогда это будет проверять только поля email и password.

Документы по группам проверки находятся здесь и здесь

person Manse    schedule 08.05.2013
comment
Это работает, хотя я использовал другой подход. Я добавил валидаторы вручную (например, Zend_Form), получил массив вместо объекта и использовал его для проверки учетных данных. - person SoWhat; 09.05.2013