我有一个模型类ModelHome,它是Model的子级,即:
class ModelHome extends Model
模型是控制器类的变量,即:
class Controller {
public $model;
public function __construct () {
$this->model = new Model;
}
}
是否可以从 ModelHome 类内的方法访问控制器类中的方法?
我已经尝试了 parent:: 并按名称调用该类,即控制器::方法,但我似乎找不到正确的范围来访问我需要的方法。
谢谢。
-文 斯
首先,你必须有一个ModelHome
的实例。如果你创建一个Model
的实例,它并没有因为ModelHome
存在而自动扩展ModelHome
。所以,我想你的Controller::__construct()
应该是:
public function __construct () {
$this->model = new ModelHome;
}
但是,您的ModelHome
不知道您的Controller
类/实例。您可以在ModelHome
中创建一个__construct
,该采用带有指向控制器的链接的参数。喜欢这个:
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);
}
}
现在,您的模型主页通过使用$this->controller
了解控制器