TP3.2复习笔记
来源:互联网 发布:北京大红门淘宝培训班 编辑:程序博客网 时间:2024/06/05 15:33
/******************************************************************/ TP3.2操作要点/******************************************************************//******************************************************************//*********************************************************************//*****************************【TP前后台部署】************************/{1.首先页面访问TP文件,自动生成模块文件2.复制Application应用文件下的Home,修改为后台目录Admin3.在Admin下的Conf中config.php文件中设置配置return array(//'配置项'=>'配置值''DEFAULT_MODULE' => 'Admin', // 默认模块'DEFAULT_CONTROLLER' => 'Index', // 默认控制器名称'DEFAULT_ACTION' => 'index', // 默认操作名称);[注意]Admin下的文件命名空间注意修改为Adminag: namespace Home/Controller; ---->修改为 namespace Admin/Controller;至此,前后台可分离访问!后台通过localhost/tp3/index.php/Admin/访问!!!}/*********************************************************************//*****************************【引入外部页面】************************//** * 【view视图层引入外层public样式文件】 */{在 <head></head>标签中写入以下代码<base href="__PUBLIC__/Admin/">}/** * 【view视图层iframe引入其他页面】 */{1.在控制器设置方法展示2.视图层通过U方法引入<iframe src="{:U('Index/home')}" frameborder="0"></iframe>}/** * 【view视图层include引入其他页面】 */{<include file="public/header"/>[注意]:include标签最后的/,否则引入失败}/***************************************************************************//****************************【实例化模型】*********************************/M()实例不需要加载具体的模型类,若只进行CURD操作,性能更高;M实例化过程{默认情况下是直接实例化系统的\Think\Model类}D()实例需要加载具体的模型类,可在模型类中自定义方法。D方法可以自动检测模型类,如果存在自定义的模型类,则实例化自定义模型类;D实例化过程{检测Model是否存在自定义模型类------->(不存在)检测公共模块下是否存在------>(不存在)}/*********************************************************************//******************************【定制404页面】*************************/{//设置页面404 /* 页面不存在时,调取_empty方法 */ public function _empty() { echo "页面不存在"; } [说明]设置在控制器中,当调取该控制器下不存在方法时,调用_empty()方法}/*********************************************************************//******************************【定制跳转页面】*************************/跳转配置设置['TMPL_ACTION_ERROR' => THINK_PATH.'Tpl/dispatch_jump.tpl', // 默认错误跳转对应的模板文件 'TMPL_ACTION_SUCCESS' => THINK_PATH.'Tpl/dispatch_jump.tpl', // 默认成功跳转对应的模板文件][说明]1.配置设置位置: 根目录ThinkPHP/Conf/convertion.php查询上述配置参数2.跳转页面位置: 根目录ThinkPHP/Tpl/dispatch_jump.tpl----可编辑原始页面修改--也可另外自定义页面,修改配置参数(模板文件路径)/****************************************************************************//******************************【模板系统变量的使用】************************/[说明]普通的模板变量需要首先赋值后才能在模板中输出,但是系统变量则不需要,可以直接在模板中输出,系统变量的输出通常以{$Think 打头1、变量输出($_SERVER、$_POST、$_GET、$_REQUEST、$_COOKIE、$_SESSION){ag:控制器定义session:$SESSION['uname'] = "ning";控制器输出: echo $_SESSION['uname']视图模板输出: {$Think.session.uname}}2、配置输出{Conf下config定义配置项<?phpreturn array(//'配置项'=>'配置值''NAME' =>'ningwang','PWD' =>'123456',#[说明]在Conf下创建配置分支,加载const.php,const1.php'LOAD_EXT_CONFIG' => 'const,const1');?>ag:控制器输出:echo C('NAME');视图模板输出: {:C('NAME')}或{$Think.config.NAME}}/**********************************************************//** * view视图输出变量 */{#php标签输出方法一: <php>__CONTROLLER__<php>方法二: <?php echo __CONTROLLER__ ?> #框架可设置禁止视图使用<?php ?>标签}/**********************************************************//** * 路径常量 */{echo __CONTROLLER__,"<br>"; #返回当前控制器路径echo __MODULE__,"<br>"; #返回当前模块路径echo __ACTION__,"<br>"; #返回当前方法路径echo __URL__; #只在模板视图层起作用,返回当前控制器路径<!-- 结果:/major/major_self/TP3/test/index.php/Home/Index/major/major_self/TP3/test/index.php/Home/major/major_self/TP3/test/index.php/Home/Index/urlUse__URL__ --> [说明]可使用路径常量进行跳转,也可使用U()方法【手册中控制器/URL生成】}/**********************************************************************//****************************【单字母函数】****************************//** * U()跳转 */{U('地址表达式',['参数'],['伪静态后缀'],['显示域名'])ag: U('Home/Index/index',array('id'=>1,'name'=>'ning'),'php',true);注意一点:在模板中使用函数需要在函数名前面加一个冒号:ag:<a href="{:U('Login/login','id=1')}"></a>}/** * C() --- 获取配置文件config.php中的参数 *//************************************************************************//**************************【CURL操作】**********************************/$data = array('art_title'=>'寕王特制','art_content'=>'内容');$datas = array(array('art_title'=>'寕王特制1','art_content'=>'内容1'),array('art_title'=>'寕王特制2','art_content'=>'内容2'),array('art_title'=>'寕王特制3','art_content'=>'内容3'));$obj = D('Article'); //实例化模型$obj->add(数组数据);添加一条记录: $obj->add($data); //返回记录的主键id添加多条记录: $obj->addAll($datas); //返回添加的第一条主键id$obj->delete(主键值);删除单条记录: $obj->delete('1'); //删除成功返回受影响行数删除多条记录: $obj->delete('1,2,3');[注意] $obj->delete(); //删除失败,必须指定主键值$obj->Where(条件)->save(数组)更新记录: $obj->Where('id=1')->save($data);查询所有数据: $obj->select(); //返回二维数组查询指定数据[多条]: $obj->select('1,3'); //返回id为1,3的数据查询指定数据[单条]: $obj->find('1');//返回id为1的数据(一维数组)[附加说明]$obj->select(array('index'=>'字段名'));select语句查询成功是返回二维数组,下标是从0开始,这种下标对我们并什么用,我们可以指定某些字段作为二维数组的下标,一般都是使用主键字段作为下标值。【原生SQL语句操作】1、查询语句: $obj->query($sql); //成功返回二维数组2、增删改语句: $obj->execure($sql); //成功返回受影响行数/************************************************************************//**************************【模型的连贯操作方法】************************/{field() --- 获取结果集中指定的字段where() --- 条件查询order() --- 排序操作group() --- 分组操作limit() --- 限制条数join() ---- 联表操作}[注意]以上的连贯操作没有先后顺序原生SQL语句基本顺序: where--->order--->group--->having--->limit实例操作{$data = $obj->field("cat_id,cat_name,pid")->where("cat_id>3")->order("cat_id desc")->limit("5,6")->select();}连贯操作总结{$db=M('order'); //主表$rs=$db ->join("tp_user u on tp_order.uid=u.uid") //附表连主表 ->join("tp_area a on tp_order.aid=a.aid") ->join("tp_disease d on tp_order.did=d.did") ->join("tp_source s on tp_order.sid=s.sid") ->join("tp_source f on tp_order.fid=f.sid") ->order("inputtime desc")//主表字段 ->limit($page->firstRow.','.$page->listRows) ->field("tp_order.*,u.uname,a.aname,d.dname,s.sname sname,f.sname fname")//需要显示的字段 ->select();}/** * Group By 使用方法 */SELECT goods_id,count(goods_id) as size from goods_order GROUP BY goods_id结果:----------------goods_id | size---------------- 1 | 2----------------1 | 1----------------1 | 1/*************************************************************************//****************************【模型的自动验证/完成】***********************/1、在Model中设置验证规则$_validate/自动完成$_auto{1-1、设置自动验证规则[说明]按数组顺序验证提交数据[规则参数]array(array('字段名','验证规则','错误提示',['验证条件','附加规则',验证时间]););【实例】:{protected $_validate = array(array('lin_repwd','lin_pwd','确认密码不正确',0,'confirm'),array('lin_email','email','邮箱格式不正确'),array('lin_name','require','链接名称已经存在',0,'unique',1),array('lin_url','require','链接路径必须写'),);}----------------------------------------------------------------------/** * 1-2、定义自动完成[时间的添加] * [说明]附加规则为callback,表示完成规则为当前模型类中的一个方法 * [参数说明] * array( * array('字段名','完成规则','完成条件','附加规则'); * ); */protected $_auto = array(array('lin_time','checkTime','1','callback'),);public function checkTime($time){if($time){return strtotime($time);}else{return time();}}}2、在Controller中调取验证{$obj = D('Link');$obj->create(); //通过create()方法调取验证规则【实例】{if(!$obj->create()){$obj->getError();die; //获取验证失败信息}else{echo "验证通过,进行下步操作";}}}
阅读全文
0 0
- TP3.2复习笔记
- TP3.2.3笔记
- 自学tp3.2-基础
- TP3.2PHPExcel导出
- tp3.2登录退出
- tp3.2中微信支付
- tp3.2 引用赋值
- tp3.2中递归
- tp3.2路由定义
- TP3.2数据库转换
- tp3.2zfb
- tp3.2 缓存
- tp3.2切换数据库
- TP3.2_MVC
- TP3.2_1
- Tp3.2 学习
- 复习笔记-数据类型2
- 数据结构复习笔记(2)
- Qt5.5.1移植到freescale imx6
- 软件工程第五章
- 做PPT用到的实用且免费的网站
- 关于深度学习在生物学领域的应用分析
- C优化篇之优化内存访问
- TP3.2复习笔记
- RecyclerView展示数据+跳转详情页
- 深度学习: gradient diffusion (梯度弥散)
- [Python][Numpy] ValueError: Integers to negative integer powers are not allowed.
- Linux 程序内存空间布局
- opencv3/C++图像像素操作
- 使用SSM框架搭建Web服务器实现登录功能(Spring+SpringMVC+Mybatis)
- Linux发行版进化史
- 【Sublime】设置 sublime Text3 中的 Tab 键为 4 个空格