LAMP兄弟连ThinkPHP笔记

[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

谢了!

转载于:https://www.cnblogs.com/wcp-spring/archive/2012/11/27/2791465.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值