0

我有一个模型-

class Model{
    public $childModel;
     public function getModel($url){
     $this->childModel = 'model/'.$url;
     include($this->childModel);
     new ModelHomeHome();
     }
    }

这是儿童模型-

class ModelHomeHome extends Model{
    function __construct(){
        echo 'This is Home Model.';
    }

}

控制器类 -

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

这是子控制器 -

class ControllerHomeHome extends Controller{
 function help(){
 $this->model->getModel('home/home.php');
 }
}

在一个页面中 -

include(controller.php);
include(model.php);

问题是子模型类没有初始化。致命错误:在非对象 ... 上调用成员函数 getModel()

如果我将子控制器$this->model = new Model();help()功能放在内部而不是放在父控制器内部,它就可以工作。但我想在父控制器的构造函数中初始化模型。请帮忙。

4

2 回答 2

0

你确定这是你的文件的路径。我见过的大多数框架通常都有文件,所以我尝试使用常量来确保我在检索文件时位于正确的父目录中。

于 2013-02-27T08:01:38.767 回答
0

当我包含模型和控制器类并运行以下代码时,这对我来说很好

include('controller.php');
include('model.php');

$home = new ControllerHomeHome();
$home->help();

输出:

This is Home Model.
于 2013-02-27T08:03:03.450 回答