基于访问级别的Codeigniter菜单

时间:2012-03-02 19:04:15

标签: model-view-controller codeigniter

我正在尝试找到一种在Codeigniter中创建菜单的方法,该菜单根据用户的访问级别显示不同的选项,即如果他们是管理员,编辑者或只是普通用户。他们的一些选择会重叠。

我考虑在视图中添加if语句,但这不是一个非常好的MVC。我还考虑在控制器中创建一个多维数组,根据用户访问级别设置菜单选项。

我真的很感激想法和意见。

2 个答案:

答案 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的组作为角色)。然后,您将创建一个显示菜单的视图,并将已记录的用户角色传递给该视图。然后,您将浏览所有角色并将其与用户角色进行比较。如果用户有角色查看特定页面,则在菜单中添加指向该页面的链接。

就是这样:-) 希望我帮忙。