从另一个控制器访问模型

时间:2012-08-20 11:46:30

标签: php model-view-controller models controllers

我们已经构建了一个小型mvc,我们希望从不同的控制器访问模型。

class Controller {
    function A() {
    }
}

class Search extends Controller {
    function B() {
        $this->model->doSomething();    
    }
}

class Profile extends Controller {
    function B() {
        ***** HERE ***** ?????????????????????????????????????????????
        Search::doSomething();
    }
}

class Model {

}

class search_model extends Model {     
    public function doSomething() {
        // Do Something
        echo "doing something";
    }
}

class profile_model extends Model { 
    public function getProfile() {
        // Get Profile
        echo "getting profile";
    }
}

我想在配置文件控制器中访问搜索控制器功能doSomething(),如果你能看到 这里 部分或其他部分的行?

2 个答案:

答案 0 :(得分:0)

只需将模型包含在另一个控制器中即可。 从多个控制器访问相同的模型没有错误

答案 1 :(得分:0)

Controller是Search和Profile的父类,因此您可以添加一个可以重复使用的功能。

class Controller {

    public $model;

    public function doSomething() {
        if($this->model === null)
        {
            $this->model = new search_model();
        }
        return $this->model->doSomething();
    }
}