Как создать два родительских контроллера в Codeigniter? - PullRequest
1 голос
/ 12 октября 2010

Я хочу создать два родительских контроллера: один для администратора и один для сайта пользователя. Они должны расширить обычный класс Controller, но каждый из них должен делать разные вещи.

Ответы [ 2 ]

4 голосов
/ 12 октября 2010

Я написал статью, показывающую, как вы это делаете.

http://philsturgeon.co.uk/news/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY

Вам необходимо создать функцию __autoload () в вашем config.php или напрямую включить базовый контроллер выше определения класса.

0 голосов
/ 05 февраля 2015

Это довольно просто. Сделайте следующее:

  1. Перейдите в следующий каталог: your_ci_app/application/core/ и создайте php-файл с именем MY_Controller.php (в этом файле будут находиться ваши верхние родительские классы)
  2. Откройте MY_Controller.php и добавьте несколько классов, например:

    class Admin_Parent extends CI_Controller {
        public function __construct() {
            parent::__construct();
        }
    
        public function test() {
            var_dump("from Admin_Parent");
        }
    }
    
    class User_Parent extends CI_Controller {
    
        public function __construct() {
            parent::__construct();
        }
    
        public function test(){
            var_dump("from User_Parent");
        }
    
    }
    
  3. Создайте дочерние контроллеры в этом каталоге your_ci_app/application/controllers/. Я назову это adminchild.php

  4. Откройте adminchild.php и создайте свой код контроллера, убедитесь, что вы расширили имя родительского класса, например:

    class Adminchild extends Admin_Parent {
    
        function __construct() {
            parent::__construct();
        }
    
        function test() {
            parent::test();
        }
    
    }
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...