2012-04-08 69 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