我正在使用 Doctine2\ORM 并且我有用户的实体和角色。
当用户注册时,我需要用用户ID创建角色记录并将其ID返回给用户,然后创建用户记录,我该如何组织我的注释来完成这项工作?
您可以在 期间为您的用户添加默认角色__construct
,然后将关联标记为cascade={"persist"}
。
构造函数看起来像:
public function __construct()
{
$this->role = new RoleLink();
}
我也不认为角色需要保留对用户本身的引用,但如果需要,请记住,在 Doctrine 2 ORM 中,您通过将相关对象分配给关联属性本身(而不是标识符!)来处理关联。
首先,我认为您不想在用户注册时创建角色条目。我认为预先定义这些(以及它们各自的访问权限)是明智的。
一旦你解决了这个问题,我想你所追求的明显关系将是用户上的 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;
}