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() の呼び出し

autoload.php にion_auth ライブラリを追加しようとしましたが、リンクをクリックするか、ion_auth ルートのいずれかを使用すると、「クラス Ion_auth を再宣言できません」というエラーが表示されます。

4

1 に答える 1

1

application/modules/auth/controllers/auth.php から次の行を削除することでこれを解決しました

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

autoload.php に「ion_auth」を追加します。

コントローラーとビューの両方でion_auth関数を使用できるようになり、/auth/login/などのデフォルトの認証ルートは引き続き期待どおりに機能します。

于 2015-09-15T08:45:14.757 に答える