我正在尝试找到一种在Codeigniter中创建菜单的方法,该菜单根据用户的访问级别显示不同的选项,即如果他们是管理员,编辑者或只是普通用户。他们的一些选择会重叠。
我考虑在视图中添加if语句,但这不是一个非常好的MVC。我还考虑在控制器中创建一个多维数组,根据用户访问级别设置菜单选项。
我真的很感激想法和意见。
答案 0 :(得分:0)
我总是让这个比应该更难。为什么不为每个用户级别提供单独的视图(部分)?即:
<?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');
}
答案 1 :(得分:0)
您的每个用户帐户都应该有一组角色,即信息中心,销售,付款,产品,产品添加/编辑,产品删除,报告等(您可以使用Ion Auth的组作为角色)。然后,您将创建一个显示菜单的视图,并将已记录的用户角色传递给该视图。然后,您将浏览所有角色并将其与用户角色进行比较。如果用户有角色查看特定页面,则在菜单中添加指向该页面的链接。
就是这样:-) 希望我帮忙。