2012-03-06 16 views
4

私は自分のフォームでFOSUserBundleのバリデータを使用しようとしているのバリデータを使用するが、私はvalidator.ymlを設定する方法がわからないどのように。これは、現在、次のようになります。Symfony2の:別のバンドル

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の異なるバンドルの...

+0

はFOSユーザーバンドルで定義されたサービスで、100gのを持っています。それは、このバリデータがサービスであり、あなたではなく、実際のクラス名のサービスIDを使用する必要があるかもしれません。ただ野生の推測!ブーさんのコメントを1として – Sgoettschkes

答えて

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 
+0

、もともとあなたが直接バリデータにアクセスするためにattemting、この時間は、あなたの(正しく)これらのバリのサービスインスタンスを使用していました。 – MadManMonty

+0

私はちょうど私が必要とされた名前空間でどのクラスのSymfonyを言っているようにうわー、私にとってそれはまだ見えます...私は、名前空間の省略形(FOSUserBundle)を宣言し、代わりに完全な名前空間のことを継続して使用します。 – Strayer

+0

更新! FOSUserBundleはもうこれを行うための独自のバリデータを持っていません。https://github.com/FriendsOfSymfony/FOSUserBundle/commit/7dffdd8f095b9ee4a9f8fdd3a8e1e3ee69450cf1 – Bendihossan

関連する問題