用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3091|回复: 6
收起左侧

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

[复制链接]
发表于 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_headerview_footer页面。

但是view页面是由control文件驱动的,所以view_headerview_footer只能通过view_indexcontrol_index调用,所以view_headerview_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文件添加这个表格数据查询和传递代码?而且这些代码全部是相同的。难道不能封装这样一个表格,然后在每一个页面上用一句代码调用吗?


因为太菜了,所以估计上面的问题比较幼稚,不过对我来说很高深啦,麻烦大家指点一下吧。
发表于 2009-10-25 16:14:27 | 显示全部楼层
扩展Controller,在构造方法里面操作数据库,加载view_header
 楼主| 发表于 2009-10-25 16:24:44 | 显示全部楼层
谢谢斑竹,我研究一下

要是有这样的用法就好了:$this->load->controller('name');
发表于 2009-10-25 16:45:45 | 显示全部楼层
像头部这样的公用view,我把数据调用写在辅助函数里.
发表于 2009-10-26 08:59:07 | 显示全部楼层
我理解的LZ问的是能不能控制器调用控制器?!对吧?

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

但是LZ说的这个问题,应该可以解决~比方说HMVC扩展~
发表于 2009-10-26 12:38:03 | 显示全部楼层
是的,楼主需要的就是 HMVC,提供一个我写的 HMVC 扩展。
http://codeigniter.org.cn/forums/thread-1319-1-1.html
 楼主| 发表于 2009-10-26 13:04:34 | 显示全部楼层
谢谢楼上各位~~~~~

本版积分规则