Symfony2: как использовать валидаторы другого Bundle - PullRequest
4 голосов
/ 06 марта 2012

Я пытаюсь использовать валидаторы 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 ...

1 Ответ

1 голос
/ 06 марта 2012

Не уверен, почему это на самом деле работает сейчас, потому что я пробовал это раньше, но похоже, что путь:

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
...