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

Ond*_*ták 2 php doctrine-orm

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

/**
 * @var integer $usergroup
 *
 * @ORM\ManyToOne(targetEntity="Usergroup")
 */
private $usergroup;
Run Code Online (Sandbox Code Playgroud)

是否有可能以某种方式将其设置为id为1的Usergroup对象,或者当我实际持久化对象时是否应该处理它?

Arn*_*anc 5

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

例如:

class YourEntityService
{
    ...

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

    ...
}
Run Code Online (Sandbox Code Playgroud)