将模块控制器重定向到HMVC codeigniter中的一个特定控制器

时间:2013-07-27 14:41:34

标签: codeigniter redirect login hmvc

使用codeigniter制作离线应用。该应用程序用于存储客户端数据。我使用了codeigniter hmvc方法。现在我在我的应用程序中有大约八个模块,如模板,搜索,客户端,用户等。用户模块检查管理员身份验证。模块的数量将来会增加。

现在检查用户是否以管理员身份登录我已经在__construct()函数中的每个模块中使用了这段代码而没有模板和用户模块,因为当我尝试将此代码放入模板或用户控制器时,然后firefox说Page could not be redirected properly

if(!$this->session->userdata('user_type')){
    redirect(base_url().'users/login');
} 

将这段代码粘贴到模板和用户模块会产生问题。当我删除此代码,然后一切正常。因此,用户仍然可以在不登录的情况下访问模板和用户模块。

我只是想知道,如果有更好的方法可以不在每个控制器中粘贴这段代码,或者让访客在没有登录的情况下不访问任何模块或方法。

2 个答案:

答案 0 :(得分:0)

如果您已指定完整的网站网址,则在重定向中已存在未使用base_url()的路径 试试这个:

if(!$this->session->userdata('user_type')){
    redirect('/users/login');
} 

答案 1 :(得分:0)

如果您使用HMVC,则可以这样做:

if(!$this->session->userdata('user_type')){
    redirect('module_name/users/login'); // change module_name with your module name
}

<强>更新 也许,你重定向一个页面,重定向也...并且循环