2011-06-06 43 views
0

我使用笨,我想用我的廠庫(或者,如果你知道一個更好的方法)來創建一個用戶,該用戶是一個擴展的抽象模型類。 和我得到的錯誤,我沒有包括抽象類。我不知道如何將它包含在codeigniter中。 我不能只加載擴展模型的抽象類。 這是我的代碼:問題,同時利用廠,抽象類和模型中的CodeIgniter

class User extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 

     $this->load->library('factory'); 

    } 

    function register(){ 
     $user = $this->factory->create('doctor'); // returns 'doctor_m' or 'patient_m' 
     $this->load->model($user); 
     $this->$user->addUser(); 
    } 
} 

abstract class User_m extends CI_Model{ 

    function __construct() { 
     parent::__construct(); 
    } 

    abstract protected function addUser(); 
    abstract protected function getUser(); 
} 

class Doctor_m extends User_m{ 

    function __construct() { 
     parent::__construct(); 
    } 

    function addUser() { 
     echo "doctor"; 
    } 

    function getUser() { 
    } 
} 

class Patient_m extends User_m{ 

    function __construct() { 
     parent::__construct(); 
    } 

    function addUser() { 
     echo 'patient'; 
    } 

    function getUser() { 
    } 
} 

class factory{ 
    function create($type){ 
     if($type == 'doctor') return 'doctor_m'; 
     else return 'patient_m'; 
    } 
} 

這是什麼問題?這是在MVC中編寫它的最佳方式嗎?需要幫助我真的很困惑。

回答

0

如果基類是在模型中直接沿側的其他車型,只需添加require_once('filename.php');開始的類代碼之前。

如果你的基類是在庫(或其他文件夾),我建議你移動它,因爲我不認爲一個合適的位置。如果我建立一個基本模型類,我把它放在模型目錄中....

+0

我不能,user_m擴展模型,所以我不能只包括它。 – Ben 2011-06-07 09:13:21