在索引文件中我有_autoload
并加载了libs然后我爆炸了url来获取想要的控制器和模型(如果存在)。在视图中我可以看到模型__construct()所以模型已加载但如果我尝试使用$this->model->test();
我得到
在非对象
上调用成员函数test()
$this->request = about;
$controller = new $this->request;
$controller->loadModel($this->request);
Everething工作正常
* 这是主控制器*
class Conroller {
function __construct() {
// echo 'Main controller<br />';
$this->view = new View();
}
public function loadModel($name) {
$path = 'models/'.$name.'_model.php';
if (file_exists($path)) {
require 'models/'.$name.'_model.php';
$modelName = $name . '_model';
// **here i make the object**
$this->model = new $modelName();
}
}
}
以下是关于型号
class about_model{
function __construct() {
echo 'test';
}
public function test() {
$test = 'test one';
}
}
这是About Conroller
class About extends Conroller {
function __construct(){
parent::__construct();
$this->model->test();
$this->view->render('/about');
}
}
答案 0 :(得分:1)
在您参考模特之前,您需要在loadModel
控制器中致电About
:
class About extends Conroller {
function __construct(){
parent::__construct();
$this->loadModel('about');
$this->about->test();
}
}