我最近在我的web服务器上安装了Doctrine2,并且所有的工作都很好。我已经建立了所有的实体,但现在我正在创建一个查找表,我有点困惑如何做到这一点。我希望有一个表,看起来像这样:用Doctrine2创建查找表
tbl_Role tbl_User
+--------+----------+ +--------+----------+--------------+----------+
| id | Name | | id | Name | Password | Role |
+--------+----------+ +--------+----------+--------------+----------+
| 1 | Admin |
| 2 | User |
| 3 | Free |
+--------+----------+
的Role
和User
表之间由一个一对多的关系(一个Role
有许多Users
),这表不会改变未来。我不想使用枚举,因为它们的更新或重新排序问题(如果有更改)
我现在的问题是我如何能够将此查找表表示为Doctrine实体?通常,如果我想创建一个新的User
,我必须从DB获取拟合Role
,并将其设置为User
实体中的参考。这对我来说似乎有点贵。如果我只能在静态PHP字段中输入Role
ID,那么我可以将它们设置为User
的参考。这可能吗?
另一个问题是我如何获取查找值到数据库中。我可以在Role
表中创建Role
表后执行一个方法吗?这样就可以将构造函数标记为私有的,并且在迁移后所有值都存在。
您知道Doctrine的参考吗? https://github.com/doctrine/doctrine2/blob/2.2/lib/Doctrine/ORM/EntityManager.php#L374-413。给定角色的实际数据库ID,获取原则参考价格便宜。我仍然试图将角色存储为一个字符串,并且根本就没有Doctrine 2关系。如果您愿意,您仍然可以制作其他软件的角色表。 – Cerad