2011-06-28 113 views
3

我已經設置了一個簡單的映射。Doctrine 2中可空多對多關係

manyToOne: 
    language: 
     nullable: true 
     targetEntity: Language 
     inversedBy: questions 

然後生成的實體有以下方法

public function setLanguage(\Sf2MCQ\CoreBundle\Entity\Language $language) 
{ 
    $this->language = $language; 
} 

但現在我的問題是如何可以不設置語言,因爲我不能做 setLanguage(null)

我使用的是adminBundle,這就是他在做什麼,所以我不知道如果我應該重寫生成的方法或如果我失去了一些東西。

回答

3

如果修改setter以便方法的參數具有默認的空值,您可以取消設置語言。

public function setLanguage(\Sf2MCQ\CoreBundle\Entity\Language $language = null) 
{ 
    $this->language = $language; 
} 

然後$ entity-> setLanguage(null)起作用,null將在持久化實體後存儲。約typehinting允許空值,這裏

的更多信息: http://php.net/manual/en/language.oop5.typehinting.php