ThinkPHP入门

    xiaoxiao2022-06-28  28

    一、简介

    1、MVC简介

    ![MVC框图](https://img-blog.csdn.net/20160914142126707) ![MVC框架总结](https://img-blog.csdn.net/20160914142154941)

    2、THinkPHP简介

    1.单一入口:在一个网站中,所有的请求都指向一个脚本文件,项目结构规范,控制灵活,更加安全 实例代码: <?php define('APP_NAME','App'); define('APP_PATH','./App/');//特别注意后面的/ require('./ThinkPHP/ThinkPHP.php'); ?>

    3、THinkPHP目录简介

    ->common 存放当前项目的公共函数 ->Conf 存放当前项目的配置文件:C('name'):输出配置项 ->Lang 存放当前项目的语言包 ->Lib 存放当前项目的控制器和模型 ->Runtime 存放当前项目的运行时文件 ->Tpl 存放当前的模板文件

    二、简单操作

    1、THinkPHP运行流程

    1.加载ThinkPHP.php 2.加载核心文件 3.加载项目的文件 分析url 调用相关控制器 ->m module 模块 控制器 ->a action 方法 action=页面 ==>localhost/index.php?m=index&a=index

    2、THinkPHP的URL模式

    //echo U('Index/user',array('id'=>1),'html',false,'localhost'); 1:默认模式(pathinfo模式):/ThinkPHPStudy/index.php/Home/Index/user/id/1.html 0:普通模式: /ThinkPHPStudy/index.php?m=Home&c=Index&a=user&id=1 2:重写模式: /ThinkPHPStudy/Home/Index/user/id/1.html(隐藏index.php) 3:兼容模式: /ThinkPHPStudy/index.php?s=/Home/Index/user/id/1.html ->查看url模式:C('URL_MODEL') ->U('模式/方法',array('id'=>1),'html',true/false,localhost) ->重写url用来隐藏index.php 1.开启Apache服务的rewrite服务 2.在index.php的同级目录下创建.htaccess文件 内容/:<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule> ->url的伪静态配置: 'URL_HTML_SUFFIX'=>'html|json', // URL伪静态后缀设置

    3.自定义函数库

    在APP/Home/Common目录下创建function.php文件,面的函数为公用函数库

    三、模板技术

    1、模板的使用

    1.在App/Home/View目录下创建一个以模板为名字的文件夹,如Index,在Index下创建一个以方法名为名字的html文件,如index.html。 2.在控制器的方法上使用: $this->display()方法进行调用。 ->display('test')可以指定参数,对应test.html,也可以跨模块,如:display('User/index') 3.传递参数 ->在控制器上使用$this->name = 'String'或者$this->assign('name1','ABC')->assign('name2','EFG') ->在html页面上使用php语法输出,如echo name

    2、ThinkPHP模板引擎

    1.输出:{$zxj.name}/{$zxj['name']}/{$zxj.phone|default='13023000000'} 2.运算:{$zxj['age']+1},注:此时不能使用.表达式,否则无法输出结果 3.调用函数:{$zxj|md5|substr()} 4.循环输出:volist/foreach <volist name = 'person' id='data' offset='1' length='3' empty='没数据啦'> {$data['name']}--------{$data['age']}<br> </volist> <foreach name='person' item='data'> {$data.name}------------{$data.age}<br> </foreach> // name:后台传输过来的数组 // offset:从哪一条数据取值,初始值为 0 // length:取多少条数据 5.IF判断: eq:= nep:!= gt:> egt:>= lt:< elt:<= heq:=== nheq:!== <if condition='$num gt 10'> num大于10 <elseif condition='$num lt 10' /> num小于10 <else/> num等于10 </if> 6.ThinkPHP特有的比较标签 <eq name='num' value='10' >num = 10</eq> <compare name='name' value='11' type='eq' >num == 11</compare> 7.区间标签:in notin between notbetween range ->:<in name='num' value='1,2,3'>在这个区间</in> ->:<between name='num' value='1,10'>在1~10之间</between> ->:<range name='num' value='1,2,4' type='in'></range> 8.三元运算符: ?: {$num>11?'大于11':'不大于11'} 9.在模板中使用原生php <php> echo 'advd' </php>

    四、数据库技术

    1、模板的使用

    1.配置: 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'muke', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => 'root', // 密码 'DB_PORT' => '3306', // 端口 'DB_PREFIX' => 'mk_' // 数据库表前缀 2.实例化模型 //1.实例化基础模型 $privilege = M('privilege'); $data = $privilege -> select(); dump($data); //2.自定义模型 1.在model文件下创建模型文件,如UserModel.class.php 2.在controller中实例化该模型 //3.实例化公共模型 1.编写CommonModel集成Model 2.编写相应的自定义模块并集成CommonModel //4.实例化空模型 $model = M(); $model->query('select * from t_user');//读取 $model->execute('update t_user set user_name = "haha" where u_id = 1'); ->:M方法和D方法的区别:D('user') M方法只能实例化基础的模型 D方法会先去寻找自定义模型,若找到了,则实例化该自定义模型,否则会使用M方法实例化基础模型

    2、CURD操作

    1.添加数据 $data = array('user_name' => 'xiaoming', 'nick_name' => 'xiaomingming', 'password' => md5('123456'), 'create_date' => date('Y-m-d H:i:s'), 'update_date' => date('Y-m-d H:i:s'), ); <>M('User') -> add($data); ->:返回插入的数据的主键 <>addAll($dataList);->批量插入数据,仅限mysql数据库 <>getLastSql();->获取最后执行的一条数据库语句 2.查询数据 // 查询所有 $data = M('User') ->select(); dump($data); echo('<hr>'); //查询一种条件 $data = M('User') -> where('id=2')->select(); dump($data); echo('<hr>'); //多条件查询 $where['id']=2; $where['user_name']='xiaoming'; $where['_logic']='or'; $data = M('User') -> where($where)->select(); dump($data); echo('<hr>111'); //表达式查询:eq neq egt gt lt elt between in like not between // $where['字段名']=array(表达式,查询条件); // $where['id'] = array('lt',2);//单条件 // $where['id'] = array('between','1,8'); //双参数条件 // $where['id'] = array('like','%xiao%'); //模糊条件 // $where['id'] = array('like',array('%xiao','ming%')); //双模糊条件 $where['id'] = array(array('gt',1),array('lt',3),'or'); // 区间查询 $data = M('User') -> where($where)->select(); dump($data); echo('<hr>'); //统计用法 /** * count:统计数量 * max:获取最大值 * min:最小值 * avg:平均值 * sum:求和 */ $data = M('user')->count(); $data = M('user')->max('user_name'); $data = M('user')->avg('score'); $data = M('user')->sum('score'); dump($data); 3.更新数据 $update['score'] = 60; $where['id']=1; $data = M('User')->where($where)->save(); 4.删除数据 $where['id']=1; $data = M('User')->where($where)->delete() 也可以直接使用主键删除:M('User').delete(3);
    转载请注明原文地址: https://ju.6miu.com/read-1124570.html

    最新回复(0)