0

我刚刚使用 HMVC 从标准 CI 切换到 Codeigniter Skeleton。我正在尝试检查用户是否已登录并根据状态显示菜单项。

此代码适用于带有 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 错误

严重性:通知

消息:未定义的属性:CI::$ion_auth

文件名:MX/Loader.php

行号:279

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

我已尝试将 ion_auth 库添加到 autoload.php,但是当单击链接或使用任何 ion_auth 路由时,我会收到“无法重新声明类 Ion_auth”错误。

4

1 回答 1

1

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

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

并将“ion_auth”添加到 autoload.php

我现在可以在控制器和视图中使用 ion_auth 函数,并且像 /auth/login/ 这样的默认身份验证路由仍然可以按预期工作。

于 2015-09-15T08:45:14.757 回答