我试图找到一种在Codeigniter中创建菜单的方法,该菜单根据用户的访问级别显示不同的选项,即如果他们是管理员,编辑者或只是普通用户。他们的一些选择将重叠。基于访问级别的Codeigniter菜单
我曾考虑添加一个if语句给视图,但这不是很好的MVC。我还考虑过在控制器中创建一个多维数组,以基于用户访问级别设置菜单选项。
我真的很感激的想法和意见。
我试图找到一种在Codeigniter中创建菜单的方法,该菜单根据用户的访问级别显示不同的选项,即如果他们是管理员,编辑者或只是普通用户。他们的一些选择将重叠。基于访问级别的Codeigniter菜单
我曾考虑添加一个if语句给视图,但这不是很好的MVC。我还考虑过在控制器中创建一个多维数组,以基于用户访问级别设置菜单选项。
我真的很感激的想法和意见。
每个用户帐户应该有一组角色,即仪表板,销售,支付,产品展示,产品添加/编辑,产品删除,报告等(可以使用离子验证团体为角色)。然后你创建一个显示菜单的视图,并且你将记录的用户角色传递给该视图。然后,您将浏览所有角色并将其与用户角色进行比较。如果用户具有查看特定页面的角色,则可以在菜单中为该页面添加链接。
就是这样:-) 希望我帮了忙。
我总是让这一个比它应该更难。为什么不为每个用户级别分别提供不同的视图(部分)?即:
<?php
if ($this->user_model->isAdmin())
{
$this->load->view('user_menu_admin');
}
elseif ($this->user_model->isModerator())
{
$this->load->view('user_menu_moderator');
}
elseif ($this->user_model->isMember())
{
$this->load->view('user_menu_member');
}
else
{
$this->load->view('user_menu_guest');
}
我最初使用这种方法,但我发现我复制了很多在多种角色类型中需要的功能。 – chegwin 2012-03-04 20:17:47
所以你会在视图中放一个小的if语句来显示基于用户角色的特定菜单?我认为这可能是我要做的,但不确定它是否被认为是“正确的”MVC。 – chegwin 2012-03-04 20:19:21
是的,确切地说。对不起,如果没有解释正确。而关于正确的MVC ......我不知道这是否是最好的方法,但它很简单,它会工作:)我即将在即将推出的项目中实现它。希望它对你也有帮助。 – Stan 2012-03-05 01:04:13