PHP类继承引用codeigniter中的父类

时间:2012-11-12 23:50:52

标签: php codeigniter inheritance model

这是我的问题。我正在使用codeigniter,这是我的结构。我在2个文件中有2个课程

class Model_setup extends CI_Model 
{
    //functions

    // an update function
    public function update()
    {
        // update stuff
    }
}

// OTHER FILE

class Tests extends Model_setup
{
    // other functions....

    // a totally different update function
    public function update()
    {
        // update a specific set of stuff
    }
}

我想知道是否以及如何引用这两个单独的更新函数。在这两个单独的控制器中,比如Places_Controller你如何区分这两种类方法之间的区别,以及如何确保只使用这两种更新中的一种或另一种?感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

假设您正在加载两个模型,只需按名称引用它们:

$this->Model_setup->update();

将引用第一种方法,而

$this->Tests->update();

将参考第二个。

答案 1 :(得分:1)

所以我被一位朋友开悟了如何解决这个问题。这不需要任何codeigniter frmaework东西才能正常工作。以下内容可以正常工作:

class Model_setup extends CI_Model 
{
    //functions

    // an update function
    public function update()
    {
        // update stuff
    }
}

// OTHER FILE

class Tests extends Model_setup
{
    // other functions....

    // a reference function to the parent function
    public function parent_update($x)
    {
        // update a specific set of stuff
        parent::update($x);
    }

    // a totally different update function
    public function update()
    {
        // update stuff
    }
}

现在来自外部世界,说框架中的另一个控制器,一旦加载了所有内容,您就可以调用以下内容。当您希望调用父版本时$this->tests_model->parent_update($x),并且当您希望为测试模型调用$this->tests_model->update函数时update。这很有效,我已经对此进行了测试。