将模型加载到$ this范围内

时间:2014-01-15 01:18:31

标签: php codeigniter this

我正在做一个学习练习,我正在构建一个非常基本的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

0 个答案:

没有答案