1

我有一个模型类 ModelHome ,它是 Model 的子类,即:

class ModelHome extends Model

模型是控制器类的变量,即:

class Controller {

    public $model;

    public function __construct () {
        $this->model = new Model;
    }
}

是否可以从 ModelHome 类中的方法中访问 Controller 类中的方法?

我已经尝试过 parent:: 并按名称调用类,即 Controller::method 但我似乎找不到合适的范围来访问我需要的方法。

谢谢。

-文斯

4

1 回答 1

2

首先,你必须有一个ModelHome. 如果您创建 的实例,则不会因为存在Model而自动扩展。所以,我想你应该是:ModelHomeModelHomeController::__construct()

public function __construct () {
    $this->model = new ModelHome;
}

但是,您ModelHome不知道您的Controller类/实例。您可以制作一个带有指向控制器链接的参数的__constructin 。ModelHome像这样:

class ModelHome extends Model {

    public $controller;

    public function __construct ($controller) {
        $this->controller = $controller;
    }
}

class Controller {

    public $model;

    public function __construct () {
        $this->model = new ModelHome($this);
    }
}

现在,您的 ModelHome 通过使用了解控制器$this->controller

于 2012-04-08T11:54:56.337 回答