【问题标题】:Why adding $this->models. make it faster?为什么要添加 $this->models。让它更快?
【发布时间】:2009-09-26 13:06:42
【问题描述】:

我在玩这个代码。 http://programmersvoice.com/tag/code 我注意到下面一行。

$this->load->model($this->models."pagemodel", 'pages');

我把这个和

比较
$this->load->model("pagemodel", 'pages');

这是 codeigniter 的文档 http://codeigniter.com/user_guide/general/models.html#loading 建议的内容。

但是方法 2 比第一个需要更长的时间。

谁能解释一下“$this->models”是什么?请问可以吗?

提前致谢。

以下是controllers/admin中pages.php的完整代码

<?php

class Pages extends Application
{

    function Pages()
    {
        parent::Application();
        $this->auth->restrict('editor'); // restrict this controller to editor and above
        $this->load->model($this->models."pagemodel", 'pages'); // Load the page model
    }

    function manage()
    {
        $data = $this->pages->pages(); // List the pages
        $this->table->set_heading('Title', 'Slug', 'Actions'); // Setting headings for the table

        foreach($data as $value => $key)
        {
            $actions = anchor("admin/pages/edit/".$key['id']."/", "Edit") . anchor("admin/pages/delete/".$key['id']."/", "Delete"); // Build actions links
            $this->table->add_row($key['title'], $key['slug'], $actions); // Adding row to table
        }

        $this->auth->view('pages/manage'); // Load the view
    }

    function delete($id)
    {
        $this->pages->delete($id);
        $this->auth->view('pages/delete_success');
    }

    function add()
    {

        $this->load->helper(array('form', 'url'));

        $this->load->library('form_validation');

        $this->form_validation->set_rules('title', 'Page Title', 'required');
        $this->form_validation->set_rules('content', 'Content', 'required');

        if($this->form_validation->run() == FALSE)
        {
            $this->auth->view('pages/add');
        }
        else
        {
            $data['title'] = set_value('title');
            $data['content'] = set_value('content');
            $data['slug'] = url_title($data['title'], 'underscore', TRUE);

            $this->pages->add($data);

            $this->auth->view('pages/add_success');
        }
    }

    function edit($id)
    {

        $this->load->helper(array('form', 'url'));

        $this->load->library('form_validation');

        $this->form_validation->set_rules('title', 'Page Title', 'required');
        $this->form_validation->set_rules('content', 'Content', 'required');

        if($this->form_validation->run() == FALSE)
        {
            $data = $this->pages->page($id);

            $this->auth->view('pages/edit', $data[0]);
        }
        else
        {
            $data['title'] = set_value('title');
            $data['content'] = set_value('content');
            $data['slug'] = url_title($data['title'], 'underscore', TRUE);

            $this->pages->edit($id, $data);

            $this->auth->view('pages/edit_success');
        }
    }
}

?>

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    我不完全确定以下内容,因为当前版本的 Codeigniter 似乎没有填充 $this-&gt;models 变量,但我认为:

    $this-&gt;models 包含应用程序模型目录的完整路径,因此加载速度更快,因为 CI 不必查看不同的文件夹(全局和应用程序)

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-26
    • 1970-01-01
    • 1970-01-01
    • 2018-01-08
    • 1970-01-01
    • 2011-08-19
    • 2011-04-22
    相关资源
    最近更新 更多