避免在codeigniter 3控制器

时间:2016-03-16 14:13:23

标签: php codeigniter

我已经在我的codeigniter 3应用程序中使用会话帮助助手实现了一个简单的角色检查代码。

Access Helper:定义一个名为access_right的函数,该函数检查登录用户是否具有访问特定模块的访问权限,并相应地返回true或false。

除此之外,我还有两个版本的导航栏,一个用于管理员用户和非管理员用户。

在控制器中我添加了以下代码来执行检查,即加载哪个导航以及登录用户是否有权访问模块:

if($this->session->userdata('user-type') === 'admin')
    {
        $this->load->view('templates/sub_header_admin');
    }
    else 
    {
        $this->load->view('templates/sub_header');
    }

    if(access_right('client_information'))
    {
        $this->load->view('pages/clientview/client_page');
    }
    else 
    {
        $this->load->view('templates/restricted_access');
    }
    $this->load->view('templates/footer');

问题是我需要在控制器内的每个方法中重复这么多代码。

access_right('client_information'),当然而不是client_information我检查不同的值,如'operator_information',具体取决于加载的控制器。

如何避免重复代码?

1 个答案:

答案 0 :(得分:0)

就像你避免重复使用代码来检查客户端信息'访问权限 - 创建一个功能来执行此操作。