我有 3 个实体:用户角色公司
通常一个用户有一个角色和多个公司。我已经成功设置了这个。
但是,如果用户的角色取决于公司,我将如何建立关系?我尝试了一个额外的实体 UserCompanyRole。
在用户中:
/** @ORM\OneToMany(targetEntity="UserCompanyRole", mappedBy="user")*/
protected $userCompanyRoles;
public function getUserCompanyRoles() {
return $this->userCompanyRoles;
}
public function addUserCompanyRole(UserCompanyRole $userCompanyRole) {
$this->userCompanyRoles[] = $userCompanyRole;
}
角色和公司相同
在 UserCompanyRole 中:
/** @ORM\ManyToOne(targetEntity="User", inversedBy="userCompanyRoles")
* @ORM\JoinColumn( onDelete = "CASCADE" )
*/
private $user;
public function getUser() {
return $this->user;
}
public function setUser(User $user = null) {
$this->user = $user;
}
角色和公司的功能相同。
创建查询时,这将变得复杂。也许有更好的方法?