检查用户是否登录-使用Codeigniter HMVC进行离子验证


Check if user is logged in - Ion Auth with Codeigniter HMVC

我刚刚从标准CI切换到Codeigniter骨架与HMVC。我正试图检查用户是否登录并根据状态显示菜单项。

这段代码使用ion_auth:

在标准CI上工作
<ul class="nav navbar-nav pull-right">
<!-- User Tab -->
<?php if (!$this->ion_auth->logged_in()): ?>
    <li><a href="<?php echo site_url('auth/login'); ?>">Log in</a></li>
<?php else: ?> 
    <li class="dropdown">
        <a class="dropdown-toggle" data-toggle="dropdown" href="#">
        My Account <b class="caret"></b>
        </a>
        <ul class="dropdown-menu">
            <li><a href="<?php echo site_url('auth/logout'); ?>">Logout</a></li>
       </ul>
    </li>
<?php endif ?>
</ul>

如果我使用这个HMVC和ion_auth,我得到以下错误:

遇到PHP错误

严重性:注意

Message: Undefined property: CI::$ion_auth

文件名:MX/Loader.php

行号:279

致命错误:在C:'wamp'www'myapp'application'views'header.php中调用非对象的成员函数logged_in()

我已经尝试将ion_auth库添加到autolload .php,但随后我得到一个"不能重新声明类ion_auth"错误,当点击链接或使用任何ion_auth路由。

我通过从application/modules/auth/controllers/auth.php中删除以下行来解决这个问题

$this->load->library('authentication', NULL, 'ion_auth'); 

并将'ion_auth'添加到autoload.php

我现在可以在控制器和视图中使用ion_auth函数,默认的auth路由(如/auth/login/)仍然可以正常工作。