4

我正在尝试以自己的形式使用 FOSUserBundle 的验证器,但我不知道如何设置 validator.yml。它目前看起来像这样:

Acme\UserBundle\Entity\User:
    constraints:
        - FOS\UserBundle\Validator\Unique:
            property: usernameCanonical
        - FOS\UserBundle\Validator\Unique:
            property: emailCanonical
    properties:
        username:
            - NotBlank: ~
        email:
            - Email: ~
            - NotBlank: ~
        mandant:
            - NotBlank: ~
            - Type: Acme\UserBundle\Entity\Mandant

但这会导致以下 PHP 错误:

[05-Mar-2012 14:47:56 UTC] PHP Stack trace:
[05-Mar-2012 14:47:56 UTC] PHP   1. {main}() W:\redacted\symfony_webfrontend\app\console:0
[05-Mar-2012 14:48:10 UTC] PHP Fatal error:  Class 'FOS\UserBundle\ValidatorUnique' not found in W:\redacted\symfony_webfrontend\vendor\symfony\src\Symfony\Component\Validator\Mapping\Loader\FileLoader.php on line 73

看起来类路径是错误的,但我找不到任何关于如何在我自己的 validators.yml 中使用不同包的验证器的文档......

4

1 回答 1

1

不知道为什么它现在真的有效,因为我之前尝试过,但这似乎是要走的路:

namespaces:
    FOSUserBundle: FOS\UserBundle\Validator\

Acme\UserBundle\Entity\User:
    constraints:
        - "FOSUserBundle:Unique":
            property: usernameCanonical
        - "FOSUserBundle:Unique":
            property: emailCanonical
    properties:
        username:
            - NotBlank: ~
        email:
            - Email: ~
            - NotBlank: ~
        Mandant:
            - NotBlank: ~
            - Type: Acme\UserBundle\Entity\Mandant
于 2012-03-06T12:04:44.813 回答