[LAMP兄弟连李文凯讲ThinkPHP] 学习笔记
一、MVC学习
a) V VIEW 视图 (模板、 业务员)
b) C CONTROL 控制器(模块、 管理层)
c) M Model 模型(数据库操作、工厂)
二、主入口学习(Index.php)
a) APP_PATH/APP_NAME:程序路径和程序文件夹名
b) THINK_PATH:THINK程序路径
c) STRIP_RUNTIME_SPACE:生成的编译缓存文件是否去注释和空白
三、控制器(模块)、动作与URL路径学习
a) URL路径:
i. index.php/index/hello 主入口/模块/动作
b) URL几种模式:
0 普通 index.php?m=index&a=hello
1 Pathinfo index.php/index/hello
2 rewrite index/hello
3 兼容 index.php?s=/index/hello
四、模板学习
a) 控制器对应路径、动作对应模板
b) Display()显示模板
i. 跨模板:display("模板名")
ii. 跨模块:display("控制器名:动作名")
iii. 跨皮肤:display("皮肤名@目录:模板名")
iv. 全路径:display("./Public/模板名") 注:路径相对于主入口
五、路径学习
__ROOT__:根目录 __SELF__:全URL __URL__: 模块目录 __APP__: 入口文件目录 __ACTION__:动作目录 TEMPLATE_PATH:模板目录 WEB_PUBLIC_PATH:公用目录
六、模型实例化的几种方法
1、实例系统模型: $user = M('User'); 等价于 $user = new Model('user'); //实例TP中的Model.php
2、实例自定义模型:$user = D('User'); 等价于 $user = new UserModel(); //只针对此表操作
3、跨模型实例: $user = M('User','CommModel); //用于公用模块、CU RD和关联操作
4、空模型实例: $user = M(); //什么都没有
七、CURD和关联操作
1、连贯操作:$list = $user->field('id,name')->where('id=1')->order('id desc')->select(); //查询user表中,id为1的 id,name 数据
2、find、findAll和select区别:find--查询一条数据,为一维数组;findAll == select 查询多条数据,为二维数组;
3、Table:多表操作; $list = $user->table(' user u,order o ')->where(' u.id=o.id ')->select(); //查询user和order表中,id相同的数据
4、getField:获取指定字段内容; $list = $user->where('id=1')->getField('name'); //获取id为1的用户名称
5、add()和save():添加和保存信息; $list = $user->add('name=123'); //添加
$list = $user->where('id=1')->save('name=456');//编辑
6、setInc()和setDec():数值+1/-1
八、create与自动令牌
1、什么是令牌?一个在FORM表单中,系统预先定义的一个加密字符串,用于验证是否站外提交.
如:<input type='hidden' name='__hash__' value='123456789sss'>
2、create():根据表单提交的POST数据创建数据对象
九、查询表达式 $data['id'] = array(array("gt",' 250'),array("gt",' 253'),array('in','251'),'or'); //eq(==) gt(>) lt(<) between(在。。中) in(在。中) like(相似) //复合表达式 $data['status'] = array( array('egt',2) , array('elt',5) ); $data['id'] = array('lt',60); $data['_logic'] = 'or'; //关系为OR $where['_complex'] = $data; //组合关系 ( (`status` >= 2) AND (`status` <= 5) ) OR ( `id` < 60 ) ) $where['id'] = array('in','56,57'); //AND ( `id` IN (56,57) //SELECT id,status FROM `rfcms_order` WHERE ( ( (`status` >= 2) AND (`status` <= 5) ) OR ( `id` < 60 ) ) AND ( `id` IN (56,57) ) $list = $member->where($where)->field('id,status')->select(); //统计查询 $list = $member->count(); //统计总条数 $list = $member->sum('price'); //统计总和 $list = $member->avg('price'); //平均数 //定位 $member = new AdvModel('member'); //需要继承AdvModel $list = $member->order('id desc')->getN(N); //获取N-1条 $list = $member->order('id desc')->first(); //获取第一条 $list = $member->order('id desc')->last(); $list = $member->order('id desc')->top2(); //获取前两条
十、分页与验证码
1、分页
import('@.Org.page'); //引入分页类
$member = D('member'); $cnt = $member->count(); //统计总条数 $page = new Page($cnt,3); //实例分页 Page('总的记录数','每页显示记录数') $show = $page->show(); //分页显示输出 $list = $member->field('id,name')->limit( $page->firstRow .','. $page->listRows )->select(); $this->assign('page',$show);
$this->assign('member',$list); $this->display();
2、验证码:
//生成图像验证码 public function verify(){ import('@.Org.Image'); Image::buildImageVerify(); //生成图像验证码
//Image::GBVerify(); 生成中文验证 注:1、需要拷贝中文字体到'@.Org'目录 2、需要修改Image.class.php中322行,msubstr为String::msubstr }
html中调用方法:<img src="__URL__/verify" />
验证:if (md5($_POST['verify']) == $_SESSION['verify']){.....}
十一、多语言和多皮肤
1、多语言:A、需要在Lang目录下建立几个语言文件夹,如:zh-cn,zh-tw,en-us;并且新建一个与之相对应的语言集
B、开启conf/config.php 配置文件中,'LANG_SWITCH_ON' =>true
C、在TPL文件中引入:<a href="?l=zh-cn">中文</a><a href="?l=en-us">englist</a>....<div>{$Think.lang.welcome}</div>
2、多皮肤:A、需要在Tpl目录下建立几个语言文件夹,如:Red,Black,Blue;并且新建一个与之相对应
B、开启conf/config.php 配置文件中, 'TMPL_DETECT_THEME' => true;
C、在TPL文件中引入:<a href="?t=Red">红色</a><a href="?t=black">黑色t</a>....
十一、动态缓存
1、S('data',$Data,3600); // 设置缓存,缓存$Data数据3600秒
2、$Data = S('data'); // 获取缓存数据
3、 S('data',NULL); // 删除缓存数据
十二、视图
<?php class UserViewModel extends ViewModel{ //继承视图模型 protected $viewFields = array( 'user' =>array('id,name,pwd'), 'msg' =>array('title','_on'=>'user.id=msg.uid'), //建立关联 );//select u.*,m.title from user u,msg m where u.id=m.uid
} //TP引用视图:方便表链接查询 $user = new UserViewModel(); $list = $user->select(); dump($list); ?>
转自:http://hi.baidu.com/zdy66/item/fd86b908b4adb3c02f4c6b68
谢了!
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com