【发布时间】:2012-05-02 09:09:40
【问题描述】:
我有一个创建新实体的表单。该实体有一组其他实体,这些实体也输入到该表单中。
我想使用集合中实体的验证选项来验证这些实体,但它不起作用。检查“主要”实体(Person)的验证规则,但不检查addressList集合(地址)中实体的验证规则。当我在字段中输入无效信息时,提交的表单已成功验证。
在此示例中,街道的注释未用于验证。
class Person
{
...
/**
* @ORM\OneToMany(targetEntity="Address", mappedBy="owner", cascade={"persist", "detach"})
*/
protected $addressList;
....
}
class Address
{
...
/**
* @ORM\ManyToOne(targetEntity="Person", inversedBy="addressList")
* @ORM\JoinColumn(name="person_id", referencedColumnName="id", onDelete="CASCADE")
*/
protected $owner;
/**
* @ORM\Column(type="string", length=75)
* @Assert\MinLength(
* limit=3,
* message="Street must have atleast {{ limit }} characters."
* )
*/
protected $street;
...
}
如何获取表单以验证提供的地址实体?
【问题讨论】:
-
我通过将
'cascade_validation' => true添加到 PersonType 的getDefaultOptions()数组来解决此问题。
标签: validation symfony collections doctrine one-to-many