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

[讨论/交流] CI菜鸟的疑问多个

  [复制链接]
发表于 2011-5-11 20:47:09 | 显示全部楼层 |阅读模式
本帖最后由 guanliyang 于 2011-5-11 21:02 编辑

CI用了十几天了,深知自己对CI认识的肤浅程度,特提出疑问。望大家讨论或解答。
1.就是CI的这个函数$this->uri->segment(n)。它不用初始化,所以在M,V,C层中都是可用的,可以说是完全替代了$_GET[];可是这个函数有没有速度或是不安全问题?$_GET[];的消失总是别扭,而且用了CI,自己的URL就强行的被划成了http://localhost/ci/index.php/test/admin/123/page这个格式,可能是不习惯,所以不爽。
问题:$this->uri->segment(n),这个得到的值放在M层是最合适的吗?
2.关于分页类。这个最常用的类好用,可是每个项目中都用十几回左右。我想编程的精髓是不写重复代码,可写这个的时候却重复了N多遍。都是手册上一大堆的初始化函数,然后到M层查总记录,然后给limit后的两个参数。然后在V层创建显示分页。能不能做成模块或什么,只写一次。
3.加载视图。
$this->load->view('头');$this->load->view('内容')$this->load->view('尾');
每次,每个页面都加载这几个视图,重写N多遍,烦。头和尾是不变的,可每个内容都在变。
而且头和尾都有自己的$data['值']值。这样每个方法就更加臃肿,也就是说每个头尾都要调用M层相同的方法或函数来拿到相同的值。顺序变了页面就变了。这个真不知怎么弄了。
4.假如我在C控制器admin.php里面有if(empyt($this->session->userdata('name'))){则跳回登录首页};//假如session里的name是空的。就跳回登录页面。
我是不是必须在我的Admin类里面的所有方法里面都加上这行代码?
 楼主| 发表于 2011-5-11 20:49:13 | 显示全部楼层
本帖最后由 guanliyang 于 2011-5-11 21:03 编辑

大侠救命。
语言表达是问题。我看着都觉得自己菜。
发表于 2011-5-11 21:27:16 | 显示全部楼层
下载CI的一些开源作品看看,你会有更深的理解
 楼主| 发表于 2011-5-12 08:58:52 | 显示全部楼层
本帖最后由 guanliyang 于 2011-5-12 08:59 编辑

回复 jeongee 的帖子

哪里,可否给个连接。
发表于 2011-5-12 09:14:22 | 显示全部楼层
 楼主| 发表于 2011-5-12 09:24:10 | 显示全部楼层
回复 jeongee 的帖子

拜谢,您回复的真快。您跟Hex是一个人么?
发表于 2011-5-12 09:25:43 | 显示全部楼层
不湿,他俩没有合体

点评

他两必须一体的  发表于 2011-5-28 00:28
版主真是搞笑  发表于 2011-5-14 19:53
Hex
对楼下两位点评表示无语。。。。  发表于 2011-5-12 12:28
这是我的论坛,HEX是谁??? 哈哈哈哈哈~~  发表于 2011-5-12 10:11
表示,他两可以合体...  发表于 2011-5-12 09:55
 楼主| 发表于 2011-5-12 09:55:28 | 显示全部楼层
其实我的问题主要是一个admin.php文件里,就一个继承了CI控制类的Class Admin extends CI_Controller 这个里面,如何设置各个方法公用的方法。或是再建个all.php文件,然后Admin extends All。就不用extends CI_Controller了。
发表于 2011-5-12 10:10:52 | 显示全部楼层
回复 guanliyang 的帖子

这是你不看手册的后果,把手册耐心看看哦
http://codeigniter.org.cn/user_g ... ting_libraries.html
 楼主| 发表于 2011-5-12 10:11:41 | 显示全部楼层
菜鸟这么写。将公用的,写到all.php文件里,里面全是函数。然后include_once("all.php");
然后在继承了CI的amdin类里就可以使用all.php里面的重复方法了。
可是这样很笨,。接口,类的继承还不是很明白。
想知道高手们怎么写。

本版积分规则