2013-07-07 59 views
1

這只是沒有意義。我似乎無法得到一個簡單的Symfony2驗證工作。簡單的Symfony2/Doctrine驗證不起作用

$insert = new MyEntity(); 
$insert->setTest1('test'); 
$validator = $this->get('validator'); 
$errors = $validator->validate($insert); 

...但是$ errors總是一個帶有空約束數組的對象。它永遠不會失敗驗證。

我的配置(YAML):

MyBundle\Entity\MyEntity: 
    properties: 
     test1: 
      - MinLength: 10 
      - Email 
    type: entity 
    table: null 
    fields: 
     id: 
      type: integer 
      id: true 
      generator: 
       strategy: AUTO 
     test1: 
      type: string 
      length: 255 
      column: test_1 
     test2: 
      type: integer 
      column: test_2 
    lifecycleCallbacks: { } 

回答

4

你混合主義的映射和symfony中的驗證在一個YML文件。

在陽明的validation configuration從文件加載:

Acme/YourBundle/Resources/config/validation.yml // YAML 

Acme/YourBundle/Resources/config/validation.xml // XML 

而且mapping information應該放在之一:

Acme/YourBundle/Resources/config/doctrine/MyEntity.orm.yml // YAML 

Acme/YourBundle/Resources/config/doctrine/MyEntity.orm.xml // XML 

Acme/YourBundle/Resources/config/doctrine/orm/MyEntity.orm.yml // YAML 

Acme/YourBundle/Resources/config/doctrine/orm/MyEntity.orm.xml // XML 
+0

完美。謝謝。我也試着讓驗證器返回一個數組,像$ errors [0] ['message'] =「這不是一個有效的電子郵件地址」。它總是返回一個對象,這是一個噩夢來解析這種格式。 – user2143356

+0

$ form-> getErrorsAsString(),也適用於字段:D – nifr

+0

這實際上並不與表格相關。我只是使用頁面頂部的代碼。原始驗證器無法實現嗎? – user2143356