0

我正在使用 Doctine2\ORM 并且我有用户的实体和角色

当用户注册时,我需要用用户ID创建角色记录并将其ID返回给用户,然后创建用户记录,我该如何组织我的注释来完成这项工作?

4

2 回答 2

0

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

构造函数看起来像:

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

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

于 2013-01-24T10:28:06.710 回答
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;
}
于 2013-01-24T10:34:44.463 回答