我刚刚从标准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/)仍然可以正常工作。