Doctrine2,从另一个创建一个实体?

时间:2013-01-24 10:18:02

标签: orm doctrine-orm

我正在使用Doctine2 \ ORM,我有user的实体和role

当用户注册时,我需要创建具有用户ID的角色记录并将其id返回给用户,然后创建用户记录,如何组织我的注释进行此类工作?

2 个答案:

答案 0 :(得分:0)

您可以在__construct期间向用户添加默认角色,然后将关联标记为cascade={"persist"}

构造函数看起来像:

public function __construct()
{
    $this->role = new RoleLink();
}

我也不认为某个角色需要保留对用户本身的引用,但如果需要,请记住,在Doctrine 2 ORM中,您通过将相关对象分配给关联属性本身来处理关联(而不是标识符) !)

答案 1 :(得分:0)

首先,我认为您不想在用户注册时创建角色条目。我认为最好先定义这些(以及各自的访问权限)。

一旦你完成了这项工作,我猜你之后的明显关系将是持久性级联设置的用户的ManyToOne。

/**
 * @Table(name="role")
 */
class Role
{

    // possibly define your roles accesses as another realtion or hard code?
}

/**
 * @Table(name="user")
 */
class User
{
    // id + any other definitions

    /**
     * @var Entities\Role $role
     * @ManyToOne(targetEntity="Role", cascade={"persist"})
     */
    private $role;
}