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() の呼び出し
autoload.php にion_auth ライブラリを追加しようとしましたが、リンクをクリックするか、ion_auth ルートのいずれかを使用すると、「クラス Ion_auth を再宣言できません」というエラーが表示されます。