【发布时间】:2013-06-02 00:10:27
【问题描述】:
我没有找到类似的话题,所以我问:
如何解决对我的所有 CodeIgniter 控制器功能重复相同模型查询的问题?对于我的网站,我必须在几乎相同的重复数据库查询上构建页眉和页脚,如下所示:
class Main extends CI_Controller
{
public function aboutus()
{
$this->load->model("read_db");
$commondata["title"] = "Company - ".lang("aboutus");
$commondata["mainmenu"] = $this->read_db->db_mainmenu();
$commondata["mainprodcat"] = $this->read_db->db_allprodmaincat();
$commondata["bestselling"] = $this->read_db->db_bestselling();
$commondata["brochures"] = $this->read_db->db_allbrochures();
$this->load->view("headerview", $commondata);
$contentdata["aboutus"] = $this->read_db->db_aboutus();
$this->load->view("view_aboutus", $contentdata);
$this->load->view("footerview");
}
public function contact()
{
$this->load->model("read_db");
$commondata["title"] = "Company - ".lang("contact");
$commondata["mainmenu"] = $this->read_db->db_mainmenu();
$commondata["mainprodcat"] = $this->read_db->db_allprodmaincat();
$commondata["bestselling"] = $this->read_db->db_bestselling();
$commondata["brochures"] = $this->read_db->db_allbrochures();
$this->load->view("headerview", $commondata);
$contentdata["aboutus"] = $this->read_db->db_contact();
$this->load->view("contactview", $contentdata);
$this->load->view("footerview");
}
*further functions like this*
}
是否可以将相同的重复模型调用外包给另一个函数或文件? 非常感谢您的任何建议。
【问题讨论】:
-
不是一个直接的答案,所以我把它写成评论,但你应该考虑缓存这些数据。您可以每小时生成一次,而不是每次调用生成一次页脚。 Smarty 有这样的缓存处理,Memcache 就是为此而生的,Redis 值得一试。
-
@ZsoltSzilagy CodeIgniter 有自己的缓存处理,非常好。
-
@ZsoltSzilagy Köszi Zsolt!这是个好主意,但我想我仍然必须在第一次调用它时生成页面,即使它会被兑现。
标签: codeigniter model controller