如何在codeigniter控制器功能中避免多个模型调用?

时间:2016-05-17 07:55:30

标签: php codeigniter controller models

我们假设我在codeigniter上有这个课程:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Welcome extends CI_Controller
{
    function header(){
        $this->load->model("options_model");
        $data['options'] = $this->options_model->get_options();
        $this->load->view("header", $data);
    }

    function content(){
        $this->load->view("content");
        // ...
    }

    function footer(){
        $this->load->model("options_model");
        $data['options'] = $this->options_model->get_options();
        $this->load->view("footer", $data);
    }

    function index(){
        $this->header();
        $this->content();
        $this->footer();
    }
}

如您所见,我在页眉和页脚处重复调用options_model和方法get_options。然后,在索引I调用页眉和页脚。在这种情况下如何避免重复方法。或者像这样的案件的最佳方式是什么?

2 个答案:

答案 0 :(得分:2)

您可以在application/config/autoload.php中调用您的模型,它将包含在您的所有项目中

$autoload['model'] = array('options_model'); 

如果您想在单一控制器下上传。那么你可以在construct

中调用它
 public function __construct() 
    {
        parent::__construct();
        $this->load->model("options_model"); // load it here??
    }

添加functin function

的正确拼写

答案 1 :(得分:0)

为避免在两个标题中调用模型(get_options()),我希望您为它创建自定义帮助程序并直接在视图中调用它。

https://www.codeigniter.com/user_guide/general/helpers.html

了解详情