Форма входа в Codeigniter в шаблоне заголовка

Я использую Codeigniter и библиотеку Ionauth для управления пользователями. Структура, которую я использую, выглядит следующим образом:

Controllers:
- home
- auth

Views:
- home
  - home_view.php

- templates
  - header.php
  - footer.php

- auth
  - login
  - register

Когда я создаю свой домашний вид, он добавляет шаблоны header.php и footer.php и передает свои данные в основную часть.

Моя проблема в том, что я хотел бы использовать свою функцию входа в систему в header.php file (внутри формы), однако в настоящее время это невозможно, поскольку моя функция входа находится в контроллере /auth/. Могу ли я использовать эту функцию входа в систему вне контроллера /auth/, т.е. в файле header.php в папке /templates/?

Если нет, то какие возможные решения вы можете предложить?

Спасибо


person drizzy    schedule 03.04.2014    source источник


Ответы (1)


Да, вы можете сделать так-

Расширьте свой основной ci_controller до MY_Controller

Итак, создайте свой файл — application/libraries/MY_Controller.php — и заполните его таким кодом:

<?php

class  MY_Controller  extends  Controller  {

    function MY_Controller ()  {


__construct()
{
parent::Controller();

$this->load->view('templates/header')  // now in this way your header will get automatically included to every controller which extends MY_Controller

}
    }
//...
}
?>

Теперь расширите свои контроллеры до MY_Controller.

class  auth extends  MY_Controller  {
    function  __construct()  {
        parent::MY_Controller();
    }
//...
}

class  home extends  MY_Controller  {
    function  __construct()  {
        parent::MY_Controller();
    }
//...
}
person sunny    schedule 03.04.2014
comment
Привет Солнышко, спасибо за ответ. Итак, структура должна быть такой: class Controller {}; класс My_Controller расширяет Controller(); класс Auth расширяет My_Controller {}; класс Home расширяет My_Controller {}; - person drizzy; 03.04.2014