Symfony2 - 带有类和扩展类的Validation.yml

时间:2012-11-21 17:01:32

标签: oop validation symfony

我有一个'addressClass'和'shippingAddressClass'。 'ShippingAdress'扩展'地址'并且它们都相同地验证EXCEPT'shippingAddress'在检测到邮政信箱时失效。虽然邮政信箱是完全有效的帐单邮寄地址,但UPS不会发送给他们。

假设,Bird extends验证Animal的SF2最佳做法是什么?

我们应该复制用于验证Animal的.yml吗?基本上给我们两个相当相同的部分(见下文)。在这种情况下,gettersAnimalBird略有不同,但properties需要完全相同的验证规则。

Acme\BlogBundle\Entity\Animal:
        properties:
            name:
                - NotBlank: ~
        getters:
            isAnimal:
                - "True"


Acme\BlogBundle\Entity\Bird:
        properties:
            name:
                - NotBlank: ~
        getters:
            isAnimal:
                - "True"
            isBird
                - "True"

1 个答案:

答案 0 :(得分:1)

Validator Service很聪明,可以验证原始类的约束。因此,在我的AnimalBird示例中,我们只需要:

Acme\BlogBundle\Entity\Animal:
        properties:
            name:
                - NotBlank: ~
        getters:
            isAnimal:
                - "True"


Acme\BlogBundle\Entity\Bird:
        getters:
            isBird
                - "True"