codeigniter和inheritance:child设置父属性,然后另一个子属性获取属性

时间:2013-01-28 13:49:29

标签: codeigniter inheritance parent children

这是一个继承问题......主要是。新手在这里!

我拥有的: 父模型的2个儿童模型。 对于这个问题,两个孩子的模型完全相同。

我想要的: 让子模型设置父模型的属性,并为所有子项设置该属性。如果可能的话。因此,例如,Info_model设置继承属性$ this-> league_id,然后League_model可以访问由Info_model设置的此值。 我不知道在加载Ml_league_model之前,league_id的值是多少。 这有什么样的工作?

我的想法: 好像加载Info_model和League_model时,它们每个都有一个父模型的实例,而不是我想要的,这是一个孩子可以从中访问属性的实例。

在我的控制器中,正如您所看到的,test()函数的输出是:

league id in the info_model is: 508
league id in the league_model is: 

位于/ core目录中的父模型

class Ml_league_model extends MY_Model{

    protected $league_id='';

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

function _initialize($params = array())
{
    if (count($params) > 0)
    {
        foreach ($params as $key => $val)
        {
            $this->$key = $val;
        }
    }
}//end initialize
}
?>

位于/ models目录中的子模型

class Info_model extends Ml_league_model{

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

function get_league_id(){
    echo 'league id in the info_model is: '.$this->league_id.br(1);
}

位于/ models目录中的另一个子模型

class League_model extends Ml_league_model{



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

function get_league_id(){
    echo 'league id in the info_model is: '.$this->league_id.br(1);
}

位于/ controllers目录的控制器

Class Info extends MY_Controller{


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

    $this->load->model('Info_model');
    $this->load->model('League_model');

}

function test (){

    $this->Info_model->_initialize(array('league_id'=>508));
    $this->Info_model->get_league_id();
                $this->League_model->get_league_id();

}

0 个答案:

没有答案