Symfony:如何为 ArrayCollection 使用 Assert/Validation
Symfony: How to use Assert/Validation for ArrayCollection
在 Symfony 3 中,不再允许使用 cascade_validation
。所以你必须为类型做一个断言。但它不起作用,即使字段为空白但 Assert 表示 NOtBlank,表单仍然有效。我有一个 class 参与者,我想在检查我的参与者模型时检查 Adults ArrayCollection。
//Participant Model
/**
* @var ArrayCollection
* @Assert\All({
* @Assert\Type(type="My\WebsiteBundle\Model\Adult"),
* })
*/
protected $adults;
//Adult Model
class Adult
{
/**
* @var string
*
* @Assert\NotBlank()
*/
protected $salutation;
/**
* @var string
*
* @Assert\NotBlank()
*/
protected $firstname;
/**
* @var string
*
* @Assert\NotBlank()
*/
protected $lastname;
您应该使用文档http://symfony.com/doc/current/reference/constraints/Valid.html中描述的有效资产
例如:
/**
* @var ArrayCollection
*
* @Assert\All({
* @Assert\Type(type="My\WebsiteBundle\Model\Adult"),
* })
* @Assert\Valid
*/
protected $adults;
希望对您有所帮助
在 Symfony 3 中,不再允许使用 cascade_validation
。所以你必须为类型做一个断言。但它不起作用,即使字段为空白但 Assert 表示 NOtBlank,表单仍然有效。我有一个 class 参与者,我想在检查我的参与者模型时检查 Adults ArrayCollection。
//Participant Model
/**
* @var ArrayCollection
* @Assert\All({
* @Assert\Type(type="My\WebsiteBundle\Model\Adult"),
* })
*/
protected $adults;
//Adult Model
class Adult
{
/**
* @var string
*
* @Assert\NotBlank()
*/
protected $salutation;
/**
* @var string
*
* @Assert\NotBlank()
*/
protected $firstname;
/**
* @var string
*
* @Assert\NotBlank()
*/
protected $lastname;
您应该使用文档http://symfony.com/doc/current/reference/constraints/Valid.html中描述的有效资产
例如:
/**
* @var ArrayCollection
*
* @Assert\All({
* @Assert\Type(type="My\WebsiteBundle\Model\Adult"),
* })
* @Assert\Valid
*/
protected $adults;
希望对您有所帮助