我沒有足夠的信譽來要求詳細信息,但有一點你不清楚的問題是:爲什麼你需要2種不同的形式?在你的問題中,你提到了2個不同的角色,但爲什麼你需要2種不同的形式?如果你真的需要2種不同的形式,那麼你應該先: - 創建一個新的表單類型 - 創建一個新的視圖(樹枝)
像鮑里斯的建議,我會保持某種令牌每發送一個邀請,將電子郵件地址和角色關聯起來。然後修改您的註冊途徑,所以你可以在那裏通過一個道理,就像這樣:
register:
pattern: /signup/{token}
defaults: { _controller: MyBundle:Registration:signup }
在控制器的登記行爲,創建正確的表單類型並顯示相應的樹枝,這取決於相關的作用你剛剛得到的令牌。在處理POST時,再次檢查令牌以查看它是否與電子郵件地址匹配,並在創建用戶時分配適當的ROLE。
public function signupAction($token) {
// 1. Get the Token entity matching the $token variable
// 2. Create the correct form type
// 3. Display the correct twig for GET, assign correct ROLE to new User for POST
}
但是你不能按原樣使用FOSUserBundle。您將不得不覆蓋註冊過程。你可以閱讀關於這個的FOSUserBundle文檔。
可以肯定的是,對於您發送的每個邀請,您都應該保留一個具有匹配的電子郵件地址和ROLE(您想要給該人員的角色)的令牌。
基本上,當你存儲邀請令牌時,你應該存儲與之相關的邀請角色,然後在驗證你的表單或者更好地驗證你的域名時,如果類型匹配,你可以與令牌進行比較。 –
是的,但重點是如何創建兩種不同的註冊表格。 –