问:登录后如何重定向到不同的页面?
状态:我有自定义用户角色,我想为不同的用户重定向到不同的页面。
例如人力资源经理->雇员/索引,帐户经理->帐户/索引。
我正在使用yii 1.1.xx和权限模块。易和权利模块正在与绿色。
更新问题的信息
这是tbl军衔

这是用户tbl

如果级别是“帐户经理”,则网站将重定向到“帐户/索引”。
如果级别是人力资源经理,则网站将重定向到员工/索引。
发布于 2012-08-24 07:04:11
if(Yii::app()->user->checkAccess('hrManager',Yii::app()->user->getId())==1)
{
$this->redirect(array("employee/index"));
} else if(Yii::app()->user->checkAccess('accountManager',Yii::app()->user->getId())==1) {
$this->redirect(array("account/index"));
}其中,hrManager和accountManager是人力资源管理器和帐户管理器登录的相应访问规则。这将检查用户是否具有“HR Manager”级别的访问权限,是否将其重定向到那里,然后检查用户是否具有“Account Manager”级别的访问权限,如果有,则将其重定向到该页面。
显然,您可以定制适合您的应用程序,因为上面的代码不会重定向到任何地方,如果用户没有人力资源管理器或帐户管理器访问,所以你需要另一个捕手。
编辑:
hrManager字符串是rbac的创作项名称,您是否为您的rbac设置了表authassignment authitem和authitemchild?
如果不是,您可以使用您的排名表使用此方法略有不同。您可以使用rank_id设置它,但是您必须加载用户模型(如果您还没有加载它),这可能不是最有效的方法。
$user = User::model()->findbyPk(Yii::app()->user->getId());
if($user->rank_id==3)
{
$this->redirect(array("employee/index"));
} else if($user->rank_id==2)) {
$this->redirect(array("account/index"));
}另一种方法是在登录后将用户级别加载到Yii::app()->user param中,这样您就不必在重定向之前加载用户模型,也许您已经设置了这个设置,因为无论您授予对页面的访问权限?
if(Yii::app()->user->rank_id==3)
{
$this->redirect(array("employee/index"));
} else if(Yii::app()->user->rank_id==2)) {
$this->redirect(array("account/index"));
}发布于 2012-08-24 06:52:53
有点像$this->redirect(array("controller/admin"));?
https://stackoverflow.com/questions/12104472
复制相似问题