如何创建限制最大孩子的约束

How to create constraint for limiting max childs

假设我有两个实体 BusPeople,它们之间存在关系 OneToMany。 巴士最多可容纳10人。

如何创建约束来控制它?

例如:

* @MyAssert\ParentMaxChild(max=10)

* @ORM\ManyToOne(targetEntity="Webface\CharacterBundle\Entity\Bus", inversedBy="wac")
* @ORM\JoinColumn(name="bus_id", referencedColumnName="id", nullable=false)

private $bus;

使用 Count constraint.

在你的 Bus class 中,在 Person 注释中添加约束:

/**
 * ... Rest of the annotation ...
 * @Assert\Count(
 *      max = "10",
 *      maxMessage = "Bus can hold a maximum of 10 persons."
 * )
 */
protected $persons;

请注意,您可以指定 min 参数和相应的消息。