2012-04-08 74 views
2

我有實體用戶延伸FOSUserBundleFOSUserBundle實體constuct

class User extends BaseUser 
{ 
... 
    protected $ref_id; 
    /** 
    * @ORM\Column(type="float", length="11") 
... 

REF_ID來自餅乾可變REF_ID。每次新用戶註冊時,如何將此值傳遞給實體用戶。我必須重寫registerAction或在實體上創建構造函數用戶並以某種方式通過ref_id那裏?

Additionaly,我需要驗證(來自數據庫查詢)REF_ID每次新用戶註冊。我怎樣才能做到這一點 ?

class User extends BaseUser 
    { 
    ... 
     public function __construct() 
     { 
      $em = $this->getDoctrine()->getEntityManager(); 

這個例子不起作用。

回答

3

你必須修改onSuccess方法RegistrationFormHandler類。檢查覆蓋表格處理程序部分doc。在你重寫的方法,你只需要右鍵調用父類的方法onSuccess前加

$user->setRefId($this->request->cookies->get('ref_id')); 

至於驗證,您必須創建自定義驗證約束,您必須注入@request@doctrine.orm.entity_manager服務才能獲取cookie並在整個數據庫中對其進行驗證。您可以檢查cookbook entry