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 に答える