我正在使用一个使用Sonata管理包的Symfony 2.7应用程序。在我的一个实体'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/'
)),
)
)
)
...但我发现我能够在“市场”领域中保存而没有任何价值。
以下是我的实体中的市场属性的注释:
/**
*
* @ORM\ManyToMany(targetEntity="Exozet\AppBundle\Entity\Market", cascade={"persist"})
*
*/
private $market;
无论如何,是否有一种简单的方法可以使这个字段成为强制性的?
答案 0 :(得分:0)
以下是我的注释现在的样子:
/**
*
* @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
答案 1 :(得分:0)
请参阅以下链接,并在管理类
中为市场字段创建自定义验证