symfony存储用户角色的位置和方式

Iva*_*van 2 php symfony symfony-security

你好,我们正在尝试理解symfony中关于用户和用户角色及其工作原理的逻辑.我是symfony的新手,我遵循本教程:http: //symfony.com/doc/current/security/entity_provider.html

一切都在我的项目中完美无缺,但是当我查看数据库时,我有user表格,所有用户都注册了表格中的数据.

但是用户角色的表在哪里?symfony如何知道谁是ROLE_ADMIN谁,谁是谁ROLE_MODERATOR.如何为所有用户实现具有特定角色并将该角色保存在数据库中,以后我可以从某个管理面板更改它?ACL meybe?

Gen*_*ire 6

Symfony不负责存储您的角色.如果您需要管理它们,则必须存储它们,例如抛出管理控制台.

Symfony\Component\Security\Core\User\UserInterface您的User实体实现的接口包含一个方法名称getRoles,该名称应该返回表示用户角色的String数组或者Array Symfony\Component\Security\Core\Role\RoleInterface.因此,您可以在项目中创建一个名为Roleimplements 的实体Symfony\Component\Security\Core\Role\RoleInterface.然后将该实体链接到您的User实体,抛出ManyToMany关联.最后实现getRoles方法,该方法应该返回给定用户的角色.

然后,您可以像处理项目中的任何其他实体一样管理角色.