wslight 发表于 2009-10-25 14:28:48

菜鸟求教:代码重用(不知这样描述对不对)

我是最初级的菜鸟,PHP只懂一点点,对WORDPRESS和DISCUZ的模板有点研究所以措辞很业余,大家见谅


初次研究CodeIgniter,有个问题请教一下


control文件与view页面是不是一对一或者一对多的关系?

所谓一对一就是 control_index中:$this->load->view('view_index');
所谓一对多就是 view_index 中又有语句:$this->load->view('view_header');$this->load->view('view_footer');来调用view_header和view_footer页面。

但是view页面是由control文件驱动的,所以view_header和view_footer只能通过view_index由control_index调用,所以view_header和view_footer的数据也只能由control_index传递


如果以上想法没错的话,那有两个问题不解


第一:我的每个页面都要包含view_header,那是不是每个control文件中都要有给view_header传递数据的那段代码?比如我在view_header中设置css路径:<link rel="stylesheet" type="text/css" href="<?php echo $css;?>" />,那每个control文件中都要有css路径的这段代码?那不是很麻烦?

第二:如果我有个表格,用来显示数据库中的一小段数据,我要求这个表格显示在每一个页面上。那我要为每一个view页面添加这个表格代码,为每一个control文件添加这个表格数据查询和传递代码?而且这些代码全部是相同的。难道不能封装这样一个表格,然后在每一个页面上用一句代码调用吗?


因为太菜了,所以估计上面的问题比较幼稚,不过对我来说很高深啦,麻烦大家指点一下吧。

visvoy 发表于 2009-10-25 16:14:27

扩展Controller,在构造方法里面操作数据库,加载view_header

wslight 发表于 2009-10-25 16:24:44

谢谢斑竹,我研究一下

要是有这样的用法就好了:$this->load->controller('name');

乌有 发表于 2009-10-25 16:45:45

像头部这样的公用view,我把数据调用写在辅助函数里.

kazaff 发表于 2009-10-26 08:59:07

我理解的LZ问的是能不能控制器调用控制器?!对吧?

CI不行~我没研究过其他框架,不知道其他的OK不~

但是LZ说的这个问题,应该可以解决~比方说HMVC扩展~

Hex 发表于 2009-10-26 12:38:03

是的,楼主需要的就是 HMVC,提供一个我写的 HMVC 扩展。
http://codeigniter.org.cn/forums/thread-1319-1-1.html

wslight 发表于 2009-10-26 13:04:34

谢谢楼上各位~~~~~
页: [1]
查看完整版本: 菜鸟求教:代码重用(不知这样描述对不对)