2013-05-08 30 views
0

我使用symfony表單來驗證登錄數據,因此我將它與實體類(其驗證已爲所有成員定義)綁定,我需要表單才驗證電子郵件和密碼部分。所以在表單類中,我不會將電子郵件和密碼添加到表單中。但是,提交數據時,它仍然驗證它們,並在表格頂部顯示錯誤Symfony表單驗證實體的選定成員

如何在不更改實體類的情況下驗證其他成員(城市,性別等)。

所以有我的實體類與:姓名,電子郵件,性別,密碼,城市。所有領域需要

用電子郵件和密碼登錄表單。 我仍然得到錯誤,其他兩個

回答

2

使用驗證組...

實體類:

// src/Acme/BlogBundle/Entity/User.php 
namespace Acme\BlogBundle\Entity; 

use Symfony\Component\Security\Core\User\UserInterface; 
use Symfony\Component\Validator\Constraints as Assert; 

class User implements UserInterface 
{ 
    /** 
    * @Assert\Email(groups={"registration"}) 
    */ 
    private $email; 

    /** 
    * @Assert\NotBlank(groups={"registration"}) 
    * @Assert\Length(min=7, groups={"registration"}) 
    */ 
    private $password; 

    /** 
    * @Assert\Length(min = "2") 
    */ 
    private $city; 
} 

然後,當你創建你的表格:

$form = $this->createFormBuilder($users, array(
    'validation_groups' => array('registration'), 
))->add(...); 

這則只驗證emailpassword字段。在確認團組

文檔是herehere

+0

這工作,雖然我用了不同的方法。我手動添加了驗證器(如Zend_Form),並獲得了一個數組而不是實體,並使用它來檢查憑據。 – 2013-05-09 01:47:33