Проверьте, вошел ли пользователь в систему — Ion Auth с Codeigniter HMVC

Я только что переключился со стандартного CI на Codeigniter Skeleton с помощью HMVC. Я пытаюсь проверить, вошел ли пользователь в систему, и отобразить пункт меню в соответствии со статусом.

Этот код работает на стандартном CI с ion_auth:

<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

Неустранимая ошибка: вызов функции-члена logged_in () для необъекта в C: \ wamp \ www \ myapp \ application \ views \ header.php в строке 59

Я попытался добавить библиотеку ion_auth в autoload.php, но затем я получаю ошибку «Cannot redeclare class Ion_auth» при нажатии на ссылку или при использовании любого из маршрутов ion_auth.

0

Решение

Я решил это, удалив следующую строку из application / modules / auth / controllers / auth.php

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

И добавив ‘ion_auth’ в autoload.php

Теперь я могу использовать функции ion_auth как в контроллерах, так и в представлении, и маршруты аутентификации по умолчанию, такие как / auth / login /, все еще работают, как и ожидалось.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]