我想弄清楚如何讓我的用戶身份驗證體系結構。而不是每個用戶的正常帳戶,我正在開發一個系統,您有一個帳戶(電子郵件和密碼),它鏈接到各種較小的帳戶(具有不同的ID,顯示名稱,訪問角色......基本上是另一個表在數據庫中)。這些較小的或「子」賬戶完全相互獨立。Yii - 創建與子帳戶鏈接的「主」用戶帳戶
我目前正在使用它登錄「主」帳戶,並且在用戶菜單中有一個下拉列表,用於在各個子帳戶之間進行切換。但是,我堅持要如何實現切換帳戶並保持其持久性。
我嘗試過擴展CWebUser並添加setSub($id)
方法,該方法需要切換到子帳戶的ID,並將$currentSub
變量設置爲子帳戶模型,但似乎沒有工作...... I不知道從哪裏開始。
我真正需要的是子帳戶的displayName
和id
要堅持,以及在網站的任何頁面上更改這些值的方法。然後我可以在個性化頁面上使用該ID並從那裏開始(而不是使用設置爲Yii::app()->user->id
的「主」帳戶的ID)。我想我只是不知道如何設置變量並讓它們保持不變。
這基本上是我所做的,但它不會持續。假設我在用戶個人資料中設置了ID,我還想訪問主頁或任何其他頁面上的變量。如果我按照你所做的方式設置它,並通過echo'Yii :: app() - > user-> subId;調用它,它會返回'Undefined property:UWebUser :: $ subId'。我需要將其設置在每個不可能的頁面上。 – Ryan
找到了。 'Yii :: app() - > user-> setState('subID',##);'這會使它在頁面中持續存在。感謝您的幫助=) – Ryan
嗯,是的,這實際上是比我想要做的更好的解決方案。這會將它保存在會話中,同時應該足以滿足您的需求。很高興我能幫上忙。 –