Как создать ограничение для ограничения максимального количества дочерних элементов

#symfony #symfony-validator

#symfony #symfony-валидатор

Вопрос:

Допустим, у меня есть две сущности Bus и People связь OneToMany между ними. Автобус может вместить не более 10 человек.

Как создать ограничение для управления этим?

Например:

 * @MyAssertParentMaxChild(max=10)

* @ORMManyToOne(targetEntity="WebfaceCharacterBundleEntityBus", inversedBy="wac")
* @ORMJoinColumn(name="bus_id", referencedColumnName="id", nullable=false)

private $bus;
  

Ответ №1:

Используйте ограничение Count .

В вашем Bus классе добавьте ограничение в аннотацию Person:

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

Обратите внимание, что вы можете указать min параметр и соответствующее сообщение.