Как я могу проверить, что коллекция форм должна содержать X элементов? - PullRequest
0 голосов
/ 30 января 2012

У меня есть форма с полем, которое является коллекцией, и эта коллекция должна иметь фиксированное количество элементов.Как я могу это подтвердить?

1 Ответ

0 голосов
/ 02 февраля 2012

Напишите пользовательский валидатор обратного вызова для объекта, владеющего коллекцией.

Если у вас есть, например, сущность Корзина и коллекция Продуктов, вы должны сделать:

...............
use Symfony\Component\Validator\Constraints as Assert;
...............
 * @Assert\Callback(
 *  methods={"hasCorrectNumberOfProducts"}
 * )
class Cart
{
...........

public function hasCorrectNumberOfProducts(ExecutionContext $context)
{
    $propertyPath = $context->getPropertyPath();
    $correct = 666;

    if(!count($this->getProducts()) == $correct) {
        $context->setPropertyPath($propertyPath . '.products');
        $context->addViolation('Incorrect number of products!', array(), null);
    }
}
......
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...