版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Good is good, but better carries it.精益求精,善益求善。thinkphp学习笔记ONE一、ThinkPHP的介绍/了解MVCM-Model模型工作:负责数据的操作V-View视图(模板)工作:负责前台页面显示C-Controller控制器(模块)工作:描述功能框架二、ThinkPHP的获取/了解三、ThinkPHP核心文件介绍/了解ThinkPHP.php框架入口文件Common框架公共文件Conf框架配置文件Extend框架扩展目录Lang核心语言包目录Lib核心类库目录Behavior核心行为类库Core核心基类库Driver内置驱动Cache内置缓存驱
2、动Db内置数据库驱动TagLib内置标签驱动Template内置模板引擎驱动Template内置模板引擎Tpl系统模板目录四、实验环境搭建/了解五、项目搭建/重点#项目目录结构及说明:Home前台应用文件夹Common项目公共文件目录Conf项目配置目录Lang项目语言目录Lib项目类库目录ActionAction类库目录Behavior行为类库目录Model模型类库目录WidgetWidget类库目录Runtime项目运行时目录Cache模板缓存目录Data数据缓存目录Logs日志文件目录Temp临时缓存目录Tpl项目模板目录TWO一、什么是MVC/了解M-Model编写model类对数据进
3、行操作V-View编写html文件,页面呈现C-Controller编写类文件(UserAction.class.php)二、ThinkPHP的MVC特点/了解三、ThinkPHP的MVC对应的目录/了解M项目目录/应用目录/Lib/ModelV项目目录/应用目录/TplC项目目录/应用目录/Lib/Action四、url访问C/了解五、url的4种访问方式/重点!1.PATHINFO模式-重点!http:/域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值22.普通模式http:/域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值23.REWRITE模式http:
4、/域名/项目名/模块名/方法名/键1/值1/键2/值24.兼容模式HYPERLINKhttp:/域名/项目名/入口文件?s=模块名/方法名/键1/值1/键2/值2http:/域名/项目名/入口文件?s=模块名/方法名/键1/值1/键2/值2THREE一、ThinkPHP3的输出(重点)a、通过echo等PHP原生的输出方式在页面中输出b、通过display方法输出想分配变量可以使用assign方法c、修改左右定界符休要修改配置文件中的配置项TMPL_L_DELIM=,/修改右定界符二、ThinkPHP3的模型使用(重点)需要在方法中通过newModel(表名)的形式操作数据库$m=newMod
5、el(User);$arr=$m-select();DB_TYPE=mysql,/设置数据库类型DB_HOST=localhost,/设置主机DB_NAME=thinkphp,/设置数据库名DB_USER=root,/设置用户名DB_PWD=,/设置密码DB_PORT=3306,/设置端口号DB_PREFIX=tp_,/设置表前缀FOUR一、ThinkPHP3的输出(重点)a、通过echo等PHP原生的输出方式在页面中输出b、通过display方法输出想分配变量可以使用assign方法c、修改左右定界符休要修改配置文件中的配置项TMPL_L_DELIM=,/修改右定界符二、ThinkPHP3的
6、模型使用(重点)需要在方法中通过newModel(表名)的形式操作数据库$m=newModel(User);$arr=$m-select();DB_TYPE=mysql,/设置数据库类型DB_HOST=localhost,/设置主机DB_NAME=thinkphp,/设置数据库名DB_USER=root,/设置用户名DB_PWD=,/设置密码DB_PORT=3306,/设置端口号DB_PREFIX=tp_,/设置表前缀也可以使用DSN方法进行配置DB_DSN=mysql:/root:localhost:3306/thinkphp,/使用DSN方式配置数据库信息如果两种方式同时存在,以DSN方式
7、为优先还有一种简单实用模型的方式M()等效为newModel();$m=M(User);$arr=$m-select();使用模型的实例可以对数据进行操作,操作的工作一般就是对数据库进行增删改查CURD增-CCreate$m-add()删-DDelete$m-delete()改-UUpdate$m-save()查-RRead$m-select()三、补充(了解)a、模板可以遍历数组b、我们可以开启调试功能中的page_trace1.开启调试功能/3.开启调试模式define(APP_DEBUG,true);2.我们需要设置配置文件,开启页面traceSHOW_PAGE_TRACE=true,/
8、开启页面TraceFIVE一、ThinkPHP3的CURD介绍(了解)二、ThinkPHP3读取数据(重点)对数据的读取Read$m=newModel(User);$m=M(User);select$m-select();/获取所有数据,以数组形式返回find$m-find($id);/获取单条数据getField(字段名)/获取一个具体的字段值$arr=$m-where(id=2)-getField(username);三、ThinkPHP3创建数据(重点)对数据的添加Create$m=newModel(User);$m=M(User);$m-字段名=值$m-add();返回值是新增的id号
9、四、ThinkPHP3删除数据(重点)$m=M(User);$m-delete(2);/删除id为2的数据$m-where(id=2)-delete();/与上面效果相同,也是删除id为2的数据返回值是受影响行数五、ThinkPHP3更新数据(重点)$m=M(User);$dataid=1;$datausername=ztz2;$m-save($data);返回值是受影响行数SIX一、普通查询方式a、字符串$arr=$m-where(sex=0andusername=gege)-find();b、数组$datasex=0;$datausername=gege;$arr=$m-where($da
10、ta)-find();注意:这种方式默认是and的关系,如果使用or关系,需要添加数组值$datasex=0;$datausername=gege;$data_logic=or;二、表达式查询方式$dataid=array(lt,6);$arr=$m-where($data)-select();EQ等于NEQ不等于GT大于EGT大于等于LT小于ELT小于等于LIKE模糊查询$datausername=array(like,%ge);$arr=$m-where($data)-select();NOTLIKE$datausername=array(notlike,%ge%);/notlike中间没
11、有空格$arr=$m-where($data)-select();注意:如果一个字段要匹配多个通配符$datausername=array(like,array(%ge%,%2%,%五%),and);/如果没有第三个值,默认关系是or关系$arr=$m-where($data)-select();BETWEEN$dataid=array(between,array(5,7);$arr=$m-where($data)-select();/SELECT*FROMtp_userWHERE(idBETWEEN5AND7)$dataid=array(notbetween,array(5,7);/注意,n
12、ot和between中间一定要有空格$arr=$m-where($data)-select();IN$dataid=array(in,array(4,6,7);$arr=$m-where($data)-select();/SELECT*FROMtp_userWHERE(idIN(4,6,7)$dataid=array(notin,array(4,6,7);$arr=$m-where($data)-select();/SELECT*FROMtp_userWHERE(idNOTIN(4,6,7)SEVEN一、普通查询方式a、字符串$arr=$m-where(sex=0andusername=geg
13、e)-find();b、数组$datasex=0;$datausername=gege;$arr=$m-where($data)-find();注意:这种方式默认是and的关系,如果使用or关系,需要添加数组值$datasex=0;$datausername=gege;$data_logic=or;二、表达式查询方式$dataid=array(lt,6);$arr=$m-where($data)-select();EQ等于NEQ不等于GT大于EGT大于等于LT小于ELT小于等于LIKE模糊查询$datausername=array(like,%ge);$arr=$m-where($data)-
14、select();NOTLIKE$datausername=array(notlike,%ge%);/notlike中间没有空格$arr=$m-where($data)-select();注意:如果一个字段要匹配多个通配符$datausername=array(like,array(%ge%,%2%,%五%),and);/如果没有第三个值,默认关系是or关系$arr=$m-where($data)-select();BETWEEN$dataid=array(between,array(5,7);$arr=$m-where($data)-select();/SELECT*FROMtp_userW
15、HERE(idBETWEEN5AND7)$dataid=array(notbetween,array(5,7);/注意,not和between中间一定要有空格$arr=$m-where($data)-select();IN$dataid=array(in,array(4,6,7);$arr=$m-where($data)-select();/SELECT*FROMtp_userWHERE(idIN(4,6,7)$dataid=array(notin,array(4,6,7);$arr=$m-where($data)-select();/SELECT*FROMtp_userWHERE(idNOT
16、IN(4,6,7)三、区间查询$dataid=array(array(gt,4),array(lt,10);/默认关系是and的关系/SELECT*FROMtp_userWHERE(id4)AND(idquery(select*fromt_userwhereid50);var_dump($result);b、execute用于更新个写入操作成功返回影响行数失败返回booleanfalse$m=M();$result=$m-execute(insertintot_user(username)values(ztz3);var_dump($result);EIGHT一、常用连贯操作1.where帮助
17、我们设置查询条件2.order对结果进行排序$arr=$m-order(iddesc)-select();$arr=$m-order(array(id=desc,sex=asc)-select();3.limit限制结果limit(2,5)limit(2,5)limit(10)/limit(0,10)4.field设置查询字段field(usernameasname,id)field(array(username=name,id)field(id,true)/获取除了id以外的所有字段5.table6.group7.having二、补充alias用于给当前数据表定义别名字符串page用于查询分
18、页(内部会转换成limit)字符串和数字join*用于对查询的join支持字符串和数组union*用于对查询的union支持字符串、数组和对象distinct用于查询的distinct支持布尔值lock用于数据库的锁机制布尔值cache用于查询缓存支持多个参数(以后在缓存部分再详细描述)relation用于关联查询(需要关联模型扩展支持)字符串validate用于数据自动验证数组auto用于数据自动完成数组filter用于数据过滤字符串scope*用于命名范围字符串、数组NINE一、模板的使用(重点)a、规则模板文件夹下TPL/分组文件夹/模板主题文件夹/和模块名同名的文件夹Index/和方法
19、名同名的文件index.html(.tpl)更换模板文件的后缀名(修改配置文件)TMPL_TEMPLATE_SUFFIX=.html,/更改模板文件后缀名b、修改模板文件目录层次TMPL_FILE_DEPR=_,/修改模板文件目录层次c、模板主题DEFAULT_THEME=your,/设置默认模板主题需要在TPL下面新建一个your文件夹作为模板主题文件夹如何动态修改模板主题?1、在后台准备一个功能,修改config.php文件中的默认模板项2、通过url传递t=主题参数可以修改不同的模板DEFAULT_THEME=your,/设置默认模板主题TMPL_DETECT_THEME=true,/自
20、动侦测模板主题THEME_LIST=your,my,/支持的模板主题列表二、输出模板内容(重点)a、display1.display中没有参数$this-display();2.可以带参数$this-display(本模块文件夹下的其他模板文件);$this-display(index2);$this-display(其他文件夹下的模板文件);$this-display(Public:error);/注意,仅仅需要在Tpl下有Public文件夹以及其中的error.html即可,不需要一定有Public模块$this-display(其他主题下的文件夹下的模板文件);/需要开启主题支持$this-display(my:Index:index);$this-display(一个url路径);$this-display(./Public/error.html);$this-display(./Public/error.html,utf-8,text/xml);$this-show($content);3.fetch方法获得模板文件中的内容,以字符串形式返回$content=$this-fetch(Pu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国半导体激光芯片光通信市场扩容与产能布局战略规划
- 浙江省金华市2027届化学九年级第一学期期中监测试题含解析
- 2026中国智能农业智能产业链联盟行业市场供需分析及投资评估规划分析研究报告
- 2026人工智能算法商业应用市场的细分趋势及发展分析报告
- 2026中国牙科技术行业市场发展现状供需分析及投资评估规划发展趋势研究报告
- 2026山西吕梁市文水县未就业青年就业见习招聘205人考前冲刺密卷含答案详解(考试直接用)
- 岳池县2026年社会工作服务岗人员招募的考前冲刺密卷附答案详解【预热题】
- 2026中国体育器材行业市场供需分析及投资评估规划分析研究报告
- 2026南亚电信服务业市场现状供需分析及投资评估规划分析研究报告
- 2026年安庆市怀宁县公开选调教师50人模拟试卷附参考答案详解【巩固】
- 带教老师遴选制度
- 上学期高一语文10月月考试题汇编:古代诗歌阅读
- 电路分析基础-期末考试试题
- NBT20129-2023压水堆核电厂核岛应急柴油发电机组的安装、试验与验收技术规程
- GB/T 8564-2023水轮发电机组安装技术规范
- 粉煤灰罐拆除施工方案
- 行政复议、行政应诉学习课件
- 重型板式给料机说明书
- 硅油及其应用课件
- 黄煌-经方方证的四大特征
- 一目了然 化难为易-浅谈线段图图在解决小学数学问题中的应用 论文
评论
0/150
提交评论