2011-06-28 146 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