tgw2000 发表于 2011-11-19 11:22:31

包含文件的问题?

在视图A.PHPB.PHP   C.PHP 中,使用了$this->load->view("sidebar")包含进了sidebar.php这个页面
sidebar.php这个页面中有部分是要从数据库中读出来的内容
难道要在ABC的控制器中把程序代码各写一遍吗,有没有办法只写一次

Emory.M 发表于 2011-11-19 12:32:44

用model

tgw2000 发表于 2011-11-19 13:48:26

怎么个用法,能详细说一下吗

孤月蓝风 发表于 2011-11-19 14:11:16

model里面写获取数据库信息的函数,然后传回控制器,控制器再用参数的方式传给视图

tgw2000 发表于 2011-11-19 14:47:09

你们可能没有明白我的意思啊
如图:

孤月蓝风 发表于 2011-11-19 16:29:17

本帖最后由 孤月蓝风 于 2011-11-19 16:30 编辑

tgw2000 发表于 2011-11-19 14:47 static/image/common/back.gif
你们可能没有明白我的意思啊
如图:

我似乎依然不明白你的意思。
三个函数是要取不同的数据吗?取数据的话写在model层。
例如: model.php
function get_info($table)
{
    $query = $this->db->get($table);
    return $query->result();
}

controller.php
function index()
{
    if ( 查询 a 表 ) { $data['table'] = 'a' ; }
    if ( 查询 b 表 ) { $data['table'] = 'b' ; }
    $this->load->model('model') ;
    $data['show'] = $this->model->get_info($data) ;
    $this->load->view('side',$data);
}

只是我的想法,我还没有给模型传过参数。

tgw2000 发表于 2011-11-19 16:36:02

取数据的过程我已经放到模型中了,图上三个函数中绿色的代码段是相同的代码,我的意思是能不能把控制器的过程中相同的代码提取出来,然后用inclue包含

孤月蓝风 发表于 2011-11-19 16:41:42

:Q   你的话真难懂……   :Q

CI里面我还没用到过include,像我上面的代码一样,只写一个函数不就行了,调用不同的内容传不同的参数就行了啊

tgw2000 发表于 2011-11-19 17:08:52

我上代码吧,在三个过程中共同的代码是这一部分,   
    $data['broker'] = $this->Esf_model->getBrokerByID($bid);
      $data["price_esf"] = $this->Esf_model->type_list('house_price');
      $data["price_chuzu"] = $this->Esf_model->type_list('house_hire_price');
      $data["huxing"] = $this->Esf_model->type_list('house_huxing');
      $data['xiaoqu_esf'] = $this->Esf_model->type_xiaoqu('house_ershou',$bid);
      $data['xiaoqu_chuzu'] = $this->Esf_model->type_xiaoqu('house_chuzu',$bid);
是要把这一部分写成一个过程放模型中吗,在side中需要用这几个变量,

Emory.M 发表于 2011-11-19 18:46:47

本帖最后由 Emory.M 于 2011-11-19 19:19 编辑

可以在控制器构造函数里包含进去
建议还是学习下php面向对象基础然后再用CI 有些问题就好理解一些

类体内部的方法可以self关键字互相调用,你可以用model函数把这几个放在一起,用数组传参并返回对象集合
页: [1] 2
查看完整版本: 包含文件的问题?