Администратор сонаты игнорирует атрибут «обязательный» - PullRequest
0 голосов
/ 13 июня 2018

Я работаю над приложением Symfony 2.7, в котором используется пакет администрирования Sonata.В одном из методов configureFormFields() моих сущностей у меня есть следующее:

        ->add('market',
            'entity',
            array(
                'multiple' => true,
                'class' => 'Exozet\AppBundle\Entity\Market',
                'choices' => $query = $this
                    ->entityManager
                    ->getRepository(Market::class)
                    ->findBy(['status' => 100])
            ,
                'placeholder' => 'no_selection',
                'required' => true,
                'label' =>  $this->trans('country_of_origin', [], 'messages'),
                'attr' => array(
                    'class' => 'jsb_ jsb_GetDealersForCountry jsb_HideOtherTabs',
                    'data-jsb' => json_encode(array(
                        'url' => $this->getRequest()->getBaseUrl() . '/dealers/country/id/'
                    )),
                )
            )
        )

... но я нахожу, что могу сохранять без значения в поле 'market'.

Вот аннотация к рыночной собственности в моей сущности:

/**
 *
 * @ORM\ManyToMany(targetEntity="Exozet\AppBundle\Entity\Market", cascade={"persist"})
 *
 */
private $market;

Так, в любом случае, есть ли простой способ сделать это поле действительно обязательным?

Ответы [ 2 ]

0 голосов
/ 14 июня 2018

Пожалуйста, перейдите по ссылке ниже и создайте свою пользовательскую проверку для поля рынка в классе администратора

Проверка администратора сонаты

0 голосов
/ 13 июня 2018

Вот как выглядят мои аннотации:

/**
 *
 * @ORM\ManyToMany(targetEntity="Exozet\AppBundle\Entity\Market", cascade={"persist"})
 * @Assert\Count(min=1)
 *
 */
private $market;

Это изменение предоставлено документацией Symfony:

https://symfony.com/doc/2.8/reference/constraints/NotNull.html

...