我正在做一个学习练习,我正在构建一个非常基本的MVC框架。我真的只是为了更多地了解OOP以及它的优点,缺点和常见的陷阱。
我正在尝试复制行为,或者语法可能更正确,类似于非常流行的框架codeigniter。
也就是说,我想手动从Controller内部加载模型。
以下是我想要执行它的方法,然后使用它。
$this->load->model("mymodel");
$this->mymodel->some_function();
我的装载机正在运行,它尝试运行类,这就是load->模型代码的样子
public function model($model)
{
if(file_exists(APPLICATION.'models/'.$model.'.php'))
{
include(APPLICATION.'models/'.$model.'.php');
$this->{$model} = new $model;
}
}
我遇到的问题是我在运行此代码时遇到错误,说类$ model(在这种情况下应该转换为mymodel)不存在。
如何使$ model转换为mymodel,以便代码执行如下操作:new mymodel;
感谢您的帮助,我是OOP的新手,所以我可能会在这里感到困惑,但实际上似乎无法弄明白:/
但是, $this->{$model}
会转换为$this->mymodel
。
我将添加此内容,而不是创建新主题。
我的下一个问题已经出现,因为它基本上是一个后续问题,我也会在这里添加。
$this->mymodel->some_function() returns the following error;
Notice: Undefined property: Home::$mymodel in C:\xampp\htdocs\application\controllers\home.php on line 16
运行$this->mymodel->some_function();
Home是加载的控制器。
Hultin