Php Symfony2中的自定义角色类名

Php Symfony2中的自定义角色类名,php,symfony,role,Php,Symfony,Role,我一直在回顾: 注意它是如何说的“这将创建acme_角色表和存储acme_用户和acme_角色之间多对多关系的用户_角色…” 如何定义此表的名称?我不希望用户角色,我希望它被称为“应用程序名称用户角色” 另外,我希望实体名与表名匹配,因此我希望它是UserPermission.php,而不是Role.php和一个名为Role的类,并将UserPermission作为类名 如何实施这些更改?您可以随意命名您的实体,重要的是它为用户类实现了有效的接口(即UserInterface。然后您将类名传递给

我一直在回顾:

注意它是如何说的“这将创建acme_角色表和存储acme_用户和acme_角色之间多对多关系的用户_角色…”

如何定义此表的名称?我不希望用户角色,我希望它被称为“应用程序名称用户角色”

另外,我希望实体名与表名匹配,因此我希望它是UserPermission.php,而不是Role.php和一个名为Role的类,并将UserPermission作为类名


如何实施这些更改?

您可以随意命名您的实体,重要的是它为用户类实现了有效的接口(即
UserInterface
。然后您将类名传递给
security.yml
,所有这些都应该可以很好地工作。

当我尝试调用将“角色”更改为“UserPermission”时,并运行php应用程序/控制台原则:schema:update--force它说“目标实体MyApp\entity\Role在'MyApp\entity\User#roles'中找不到。有什么想法吗?除了文件名和类名之外,您还需要更改映射信息,因此注释中出现的
角色
都必须更改(注意
@ORM
标记)谢谢,我在“@ORM\manytomy”中漏掉了类名。这就解决了问题。你知道我可以做什么来更改生成的表的名称吗?我不想要“user\u role”,我想能够命名这个表以匹配我现有的命名方案。谢谢,差不多了……我只需要添加@ORM\JoinTable(name=“application\u name\u user\u roles”)。只剩下一个小问题…创建的列名为userpermission\u id。显然,它只是使用了附加了_id的类名…尽管在我的实体中,我已将id列明确定义为“user\u permission\u id”。您知道如何确保使用正确的名称吗?您可以将
名称
参数传递给列:
@ORM\column(name=“your\u column\u name”)