Symfony2 ограничивает проверку сущности yml

У меня отношение многие ко многим (пользователь и учетная запись). В пользовательском объекте у меня есть частные группы свойств (коллекция массивов).

Когда я пытаюсь проверить это свойство (группы) с помощью простого «NotBlank», это не работает. Поэтому я пробую это ниже (сбор и выбор).

Я прочитал это http://symfony.com/fr/doc/2.3/reference/constraints/Choice.html и этот http://symfony.com/fr/doc/2.3/reference/constraints/Collection.html, но это не работает или я неправильно их использую.

Кто-нибудь может мне помочь?

/* USER accounts property 

...

/**
 * @ORM\ManyToMany(targetEntity="Account", mappedBy="users", cascade={"persist", "remove"})
 */
 private $accounts;

...

Чем тип пользователя

...
->add('accounts', 'genemu_jqueryselect2_entity', array(
                    "class"         => "CMiNewsBundle:Account",
                    "property"      => "name",
                    "multiple"      => "true",
                    "query_builder" => function (EntityRepository $er) use ($user)
                    {
                          return $er->createQueryBuilder('acc')
                                    ->join('acc.users','u')
                                    ->where('u.id = :userID')
                                    ->setParameter('userID' , $user);
                    }
                    )
)
...

Проверка.yml

CM\Bundle\iNewsBundle\Entity\User:
    properties:

        ...

        accounts:
            - NotBlank: ~

        ...

person Benjamin Lucas    schedule 22.09.2014    source источник


Ответы (1)


Утверждение «NotBlank» проверяет, является ли свойство === null || свойство === ''. Поскольку ваше свойство является коллекцией, вы, вероятно, инициализируете его как ArrayCollection в своем конструкторе, поэтому оно никогда не будет нулевым.

Для коллекций вы должны использовать утверждение "Count"

http://symfony.com/doc/current/reference/constraints/Count.html

Это заставляет вас установить «максимальное» количество, а также минимальное, поэтому вы можете создать свое собственное утверждение.

person Bartłomiej Wach    schedule 22.09.2014
comment
Отлично, работает нормально! Спасибо за вашу помощь. Действительно, мне пришлось создать собственное утверждение. - person Benjamin Lucas; 22.09.2014
comment
Привет, в Symfony 3.0 меня не заставляли устанавливать максимальное значение. Но чтобы это работало в моей форме, мне пришлось установить правильную группу проверки, чтобы ограничение вообще включалось. Не забывайте об этом и сэкономьте много времени! ;) - person spackmat; 29.01.2016