2010-10-12 98 views
1

我想創建兩個父控制器:一個用於管理員,另一個用於用戶站點。他們必須擴展一個常規的控制器類,但他們每個人都必須做不同的事情。如何在Codeigniter中創建兩個父控制器?

+0

怎麼樣一點的更多信息?你想做一些像mydomain.com/admin/do_this和mydoman.com/user/do_that嗎? – ITroubs 2010-10-12 09:09:29

+0

還是更多的條件擴展,你需要像在mydoman.com/iamhere/do_taht,其中控制器Iamhere做了一個條件擴展,所以如果它是一個管理員,它擴展了admin_controller,否則它擴展了user_controller? – ITroubs 2010-10-12 09:10:57

回答

4

我寫了一篇文章,告訴你如何做到這一點。

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

你需要在你的config.php創建一個__autoload()函數或直接包含在類定義上面的基本控制器。

+0

鏈接已死,這是工作的http://philsturgeon.co.uk/blog/2010/02/CodeIgniter-Base-Classes-Keeping-it-DRY – 2013-01-10 06:53:26

0

這很簡單。執行以下操作:

  1. 轉到以下目錄:your_ci_app/application/core/並創建一個名爲MY_Controller.php一個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(); 
        } 
    
    } 
    
相關問題