ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:30.83KB ,
资源ID:6451783      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6451783.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ThinkPHP学习笔记.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ThinkPHP学习笔记.docx

1、ThinkPHP学习笔记 ThinkPHP框架ThinkPHP框架 1Day01 3一、如何学习框架: 32.ThinkPHP 12.1配置tp框架 1A/安装好.下载源码包 1B/新建一个项目目录shop 1C/编写入口程序 index.php 12.2项目目录说明: 12.3 url地址模式(4种): 12.4修改默认的控制器及方法名称: 22.5编写控制器: 22.51编写控制器规则: 2例子:声明控制器Test 22.6Action的方法: 31)给模板传值 32)显示模板 33)跳转提示 34)失败跳转 3练习: 42.7 m层的编写: 41、链接数据库 42、测试数据库连接是否成功

2、。 43.数据模型类:(会员注册) 5例3.1.1userController 53.1.2UserModel.class.php 53.1增加: 83.2查询: 83.2.1普通查询 8例 93.2.2分组查询: 103.2.3链接查询: 10Day02 102.创建分组: 103.后台: 104.修改文章 105.自动验证 11例自动验证 126.自动填充: 12例自动验证 13Day03 =V层: 131.Think标签 131.1变量标签 131.2循环标签 131.3条件标签 131.4变量调节器 141.5模板引用标签 141.6常量调用 141.7预定义变量调用 141.8模板替

3、换标签,作用,用来产生url 15Day04 15ThinkPHP总结: 17一、如何学习框架: 171、url地址规则:(可能面试) 172.1 c层 控制器规则: 172.2 Action基类的方法: 182.3、M层规则: 182.4定义模型的语法格式 182.5获得模型对象的方法 182.6 Model的方法: 182.6.1查询语句的语法格式 19select 字段列表 from 表名 19表链接查询的语法格式 192.6.2数据库操作写法例举: 202.6.3数据库操作写法例举: 203.1Think标签 213.2变量调节器 223.2页面重定向 233.3 success页面

4、233.4 ThinkPHP分页类的位置 233.5ThinkPHP表单所有验证方式 234.公共类: 244.1分页类 244,2分页类步骤: 24例:分页类 244.3文件(图片)上传类:步骤 25例:多文件上传 264.4验证码 26例:验证码 27 Day01框架:项目的必要代码。一、如何学习框架: 1、url地址规则 2、学习c层,控制器基类都提供哪些方法。 3、m,v层。 4、公共类学习类的调用及类的封装,控制器类,数据模型类。2.ThinkPHP国内程序员开发。2.1配置tp框架A/安装好.下载源码包。Common-公共函数文件。Conf-配置文件Extend/Vendor-第三

5、发代码Extend/* - 组件,基类Lib-核心类程序B/新建一个项目目录shopC/编写入口程序 index.phpdefine(APP_DEBUG,true);/开启调试模式/定义项目名称define(APP_NAME, shop);/定义项目路径define(APP_PATH, ./shop/);/加载框架入文件require ./ThinkPHP/ThinkPHP.php;2.2项目目录说明:Lib/Action-控制器类,自己编写Lib/Model-数据模型类Tpl - 模板Common - common.php 自定义的函数Runtime - 临时文件Conf - 配置文件2.3

6、 url地址模式(4种): 1)、普通模式 xxx/index.php?m=控制器名&a=方法名&. 2)、PATHINFO模式(常用模式) xxx/index.php/控制器名/方法名/id/5. 3)、兼容模式 xxx/index.php?s=控制名/方法名/. 4)、REWRITE模式,url地址进行美化。 xxx/index.php/Index/index/id/5 xxx/index-index-5.html说明:如果url没有指定控制器及方法,默认请求Index/index2.4修改默认的控制器及方法名称:a.修改配置文件conf/conf.phpDEFAULT_MODULE =

7、Index, / 默认模块名称DEFAULT_ACTION = index, / 默认操作名称b.如果配置项的名称忘记:去ThinkPHP/Conf/Convention.php中找。2.5编写控制器:2.51编写控制器规则: 1、控制器放在Lib/Action 2、命名XxxAction.class.php 3、类名和类文件名同名 4、方法名称小写 5、继承基类Action 例子:声明控制器Testclass TestAction extends Action function fun1() echo test-fun1; 2.6Action的方法: 1)给模板传值 assign(到模板上叫

8、声明,把谁传过去); 2)显示模板 display(控制器/方法名) display(模板名) display(模板路径./项目/Tpl/控制器/方法.html); 默认模板,和控制器方法同名, 并且放在Tpl/控制器/方法名.html 3)跳转提示 success(提示语,url地址,等待时间); 函数:U(控制器/方法,array(id=5) a、success方法调用的哪个模板 ThinkPHP/Tpl/dispatch_jump.tpl b、修改配置文件,加一项 TMPL_ACTION_SUCCESS = Public/success, c、新建模板success.html,并修改。

9、4)失败跳转 error(提示语,url地址,等待时间) a、success方法调用的哪个模板 ThinkPHP/Tpl/dispatch_jump.tpl b、修改配置文件,加一项 TMPL_ACTION_ERROR = Public/error, c、新建模板error.html,并修改。 redirect(目标地址,array(),时间,提示语),类似于header 第二个参数,其他传值 例子: index.php/Test/fun2/id/5.html redirect(Test/fun2,array(id=5),5,跳转中.);练习:写一个注册页面,当点击注册按钮,请求数据处理方法1

10、、控制器 Lib/Action/UserAction.class.php2、方法register() display();/Tpl/User/register.html3、编写模板register.html用户名:密码:重复密码:手机:姓名:邮箱:性别:年龄:创建会员表:create table user( id int key auto_increment, username char(20) unique not null, password char(32) not null, tel char(13), namer char(10), email char(50) unique, se

11、x enum(1,2) default 1, age tinyint(3), addtime int, state tinyint(1) default 0, ip char(20);2.7 m层的编写: 1、链接数据库 修改配置文件 DB_HOST = localhost, / 服务器地址 DB_NAME = project, / 数据库名 DB_USER = root, / 用户名 DB_PWD = root, / 密码 DB_PREFIX = , /表的前缀 2、测试数据库连接是否成功。 随便写一个控制器 在一个方法中,直接实例化Model,调用方法select() $mOb=new M

12、odel(news); $arr=$mOb-select(); var_dump($arr);3.数据模型类:(会员注册) 1、放在Lib/Model/UserModel.class.php 2、类名和类文件名同名 3、方法名没有要求,一般小驼峰。 4、继承Model 例3.1.1userControllerdisplay(); function save() /数据入库,数据模型类UserModel $ob=new UserModel(); /$_POSTaddtime=time(); /$_POSTip=$_SERVERREMOTE_ADDR; $re=$ob-addUser($_POST

13、); if($re) /提示并跳转 $this-success(注册成功,U(User/register),3); else $errorInfo=$ob-getError(); $this-assign(eArr,$errorInfo); $this-assign(infoArr,$_POST); $this-display(User/register); /$this-error($errorInfo,U(User/register),3); 3.1.2UserModel.class.php create(); if($re) return $this-add(); else return

14、 false; 例3.1.3register.php 会员注册: 用户名: $eArr.username 密码: $eArr.password 确认密码: $eArr.repassword 姓名: $eArr.namer 电话: $eArr.tel 邮箱: $eArr.email 性别: 男 女   年龄: $eArr.age 验证码 function change() document.getelementById(verify).src=_APP_/Verify/verify+Math.random(); 3.1增加: Model-create() Model-data($_PO

15、ST);/产生数据 Model-add(); Model-data($_POST)-add(); 3.2查询:3.2.1普通查询 table(表名)/指定表名 where(条件字符串)/指定查询条件 order(子句内容)/排序 limit(子句的内容)/拿多条记录 field(字段列表) /指定字段列表 alias(表名) /指定别名 join(b as b1 on .)/链接查询 group(字段名称)/分组查询 hving(条件)/筛选 select() find()例/获取列表数据 function getProductBylist($field,$where,$limit,$orde

16、r) $arr=$this-field($field) -where($where) -order($order) -limit($limit) -select(); /遍历数组$arr foreach ($arr as $k=$v) $pid=$vid; /根据产品id,获取图片 $imageob=D(Productimage); $imageArr=$imageob-getImageByPid($pid); /var_dump($imageArr); if(isset($imageArrimagename) $imagename=$imageArrimagename; else $imag

17、ename=no.jpg; $arr$kimagename=$imagename; return $arr; /获取总记录条数 function getProductCount($where) return $this-where($where)-count(); /产品的删除操作 function deleteProductById($id) return $this-where(id=$id)-delete(); /根据id获取记录 function getProductById($id) return $this-where(id=$id)-find(); /产品的修改操作 functi

18、on updateProductById($arr,$id) return $this-where(id=$id)-data($arr)-save(); 3.2.2分组查询: 查询出每个分类下有多少条记录。 select count(*) as num from news group by type $mOb-group(type)-field(count(*) as num,type)-select(); 查询出都哪个分类下记录的条数超过了50 $mOb-group(type)-field(count(*) as num,type)-having(num50)-select(); 3.2.3

19、链接查询: 查询产品记录,带有分类名称。 select p.id,p.title,t.tname from product as p join type as t on p.tid=t.id Day022.创建分组: 修改配置文件 APP_GROUP_LIST =Home,Admin DEFAULT_GROUP =Home 对控制器及模板的分组,Lib/Action/创建和分组对应的文件夹。 Tpl/创建和分组对应的文件夹。3.后台: 登录页面 控制器,Admin | 后台首页(框架集)控制器,Admin 文章模块 控制器,NewsAction Admin 4.修改文章 | |传递id值 修改

20、表单页面NewsAction update显示修改模板 | | BaseAction display() assign() | NewsModel-getNewsById() | | 提交 | | NewsAction-usave()保存修改 | | NewsModel-updateNewsById() | | 提示跳转5.自动验证 1、数据模型类中作用:写表前用于对数据的合法性进行验证 protected $_validate=array( array(被验证的字段,验证的规则,错误提示,0|1|2,附加规则,验证的时机),/指定的验证规则 ); 0|1|2 验证条件 0-字段存在则验证 1

21、-必须验证 2-内容非空则验证 验证时机: 1-insert add 2-update save 3-both 附加规则 验证规则 regex /正则表达式/ confirm 字段名称:确认2个字段的值是否相同 between array(min,max) min,max:是否在此范围之中 in array(v1,v2,v3,.) length min,max array(min,max) unique 例子: 给注册的表单加上合法性验证。 Lib/Model/UserModel.class.php例自动验证protected $_validate=array( array(username,require,用户名不为

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1