Doctrine实体作为另一个实体的默认值

时间:2011-09-04 20:06:43

标签: php doctrine-orm

在下面的示例中,我希望$usergroup的默认值为1.显然,我不能将其设置为1,因为它需要一个Usergroup对象。

/**
 * @var integer $usergroup
 *
 * @ORM\ManyToOne(targetEntity="Usergroup")
 */
private $usergroup;

是否有可能以某种方式将其设置为id为1的Usergroup对象,或者在我实际持久保存对象时是否应该处理它?<​​/ p>

1 个答案:

答案 0 :(得分:5)

您应该有一项服务来创建新的YourEntity实例。该服务将知道检索默认组,或如何创建对默认组的引​​用,并将负责将其传递给实体的构造函数。

例如:

class YourEntityService
{
    ...

    public function createNewYourEntity()
    {
        $defaultGroup = $this->em->getReference('Usergroup', 1);
        return new YourEntity($defaultGroup);
    }

    ...
}