我想弄清楚如何让我的用户身份验证体系结构。而不是每个用户的正常帐户,我正在开发一个系统,您有一个帐户(电子邮件和密码),它链接到各种较小的帐户(具有不同的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
嗯,是的,这实际上是比我想要做的更好的解决方案。这会将它保存在会话中,同时应该足以满足您的需求。很高兴我能帮上忙。 –