我最近在我的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