我使用不同类型的用户(经理,用户,管理员)构建应用程序。
每种类型的用户都可以做特定的事情,并与其他实体有特定的关系。例如,Manager链接到许多Factory。但是一个简单的用户没有链接到任何工厂。 所以我必须为我的应用程序中的不同类型的用户管理不同的实体(代表不同的表)。
我看到FOSUserBundle只能处理一个实体进行用户身份验证。 所以我不知道如何处理我的用户管理。
有什么想做这个吗?
感谢您的时间。
答案 0 :(得分:1)
你需要回顾一下你的设计。您应该使用用户角色来完成您的建议。您的所有用户都应该属于同一类。
您的用户类应该设置关系,比如说你的工厂类;
class User {
// ....
/**
*
* @ORM\ManyToMany(targetEntity="Factory", mappedBy="users")
*/
private $factories;
// .....
}
相反(可选:如果您需要向另一个方向提取数据)
class Factory {
// ....
/**
*
* @ORM\ManyToMany(targetEntity="User", InversedBy="factories")
*/
private $users;
}
然后,您可以通过防火墙限制/允许访问,也可以通过注释或脚本检查直接在控制器中访问。
这样您就可以使用FOSUserBundle附带的任何身份验证。
当谈到CRUD活动时,您需要formType类。构建自己的baseUser类,以包含所有用户类型所需的所有字段,并为每个特殊情况扩展它。
答案 1 :(得分:0)
您可以创建一个特定的组,其中包含她的配置和概念。
必须使用FOSUserBundle逻辑插入这些组后。
通过混合2逻辑概念,您可以创建您想要的东西。