1

用例

我正在学习 Symfony2 并正在创建一个乒乓球跟踪应用程序来学习该框架。我已按如下方式配置了我的实体。

Player 1..n Result n..1 Match

在我的表格上,我想验证比赛的分数是否正确。

执行

Match有一个 ArrayCollection()results

我的MatchTypeResultType表格包含以下内容。

 // Form\MatchType
    $builder->add('matchType', 'entity', array(
            'class' => 'PingPongMatchesBundle:MatchType',
            'property' => 'name',
        )
    )
    ->add('results', 'collection', array(
            'type' => new ResultType(),
            'allow_add' => true,
            'by_reference' => false,
        )
    )
    ->add('notes');

 // Form\ResultType
    $builder->add('player', 'entity', array(
                'class' => 'PingPongPlayerBundle:Player',
                'query_builder' => function(EntityRepository $er) {
                    return $er->createQueryBuilder('p')
                        ->orderBy('p.firstName', 'ASC');
                },
            ))
            ->add('score');

问题

我需要能够验证分数。但是我不确定如何处理这种类型的验证,因为我需要比较我Result#score的两个实例才能知道它们是否有效。

是否有人能够建议我可以使用的方法或方法以便能够Result#score在两个不同的实例之间进行比较?例如,我可以ArrayCollectionMatch实体中验证吗?

4

2 回答 2

0

您可以在 Match 实体上创建自定义验证器约束。 http://symfony.com/doc/2.0/cookbook/validation/custom_constraint.html

于 2013-03-04T12:00:02.560 回答
0

看看回调约束:

http://symfony.com/doc/2.1/reference/constraints/Callback.html

于 2013-03-04T12:19:40.693 回答