我有一个模型类ModelHome,它是Model的子类,即:
class ModelHome extends Model
Model是Controller类的变量,即:
class Controller {
public $model;
public function __construct () {
$this->model = new Model;
}
}
是否可以从ModelHome类内的方法中访问Controller类中的方法?
我尝试过parent ::并按名称调用类,即Controller ::方法,但我似乎无法找到合适的范围来访问我需要的方法。
感谢。
-Vince
答案 0 :(得分:2)
首先,您必须拥有ModelHome
的实例。如果您创建Model
的实例,ModelHome
仅因ModelHome
存在而未自动扩展Controller::__construct()
。所以,我想你的public function __construct () {
$this->model = new ModelHome;
}
应该是:
ModelHome
但是,您的Controller
不知道您的__construct
班级/实例。你可以在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);
}
}
,它带有一个带有控制器链接的参数。像这样:
$this->controller
现在,您的ModelHome使用{{1}}
了解控制器