ThinkPHP入门_慕课网

一、简介

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);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 零、序言 一、基础 二、URL和路由 三、请求和响应 四、数据库 五、查询语言 六、模型和关联 (1)模型定义 (2)基础操作 (3)读取器和修改器 (4)类型转换和自动完成 (5)查询范围 (6)输入和验证 (7)关联 (8)模型输出 七、视图和模板 八、调试和日志 九、API开发 十、命令行工具 十一、扩展 十二、杂项 Session Cookie 验证码 文件上传 图像处理 单元测试 附录 A、常见问题集 B、3.2和5.0区别 C、助手函数 本文档使用 看云 构建- 2 - 零、序言 概述 ThinkPHP5.0 版本的优势在于: 更灵活的路由; 依赖注入; 请求缓存; 更强大的查询语法; 引入了请求/响应对象; 路由地址反解生成; 增强的模型功能; API开发友好; 改进的异常机制; 远程调试支持; 单元测试支持; 命令行工具; Composer支持; 本快速入门系列是官方出品的学习和掌握ThinkPHP5.0 不可多得的入门指引教程和标准参照,针对新手用 户给出了较易理解的使用。 本系列围绕WEB 开发和API 开发常用的一系列基础功能进行循序渐进的讲解。推荐在看完和理解快速入 门之后,再去通读官方的完全开发手册,会更容易理解。 希望支持ThinkPHP5的用户能够到Github给我们一个star^_^ 目前章节完成情况( √ 表示已经完成) 第零章、序言 √ 第一章、基础 √ 第二章、URL和路由 √ 第三章、请求和响应 √ 第四章、数据库 √ 第五章、查询语言 √ 零、序言 本文档使用 看云 构建- 3 - 第六章、模型和关联 √ 第七章、视图和模板 √ 第八章、调试大法 √ 第九章、API开发 √ 第十章、命令行工具 √ 第十一章、扩展√ 第十二章、杂项(更新中) 附录A、常见问题集
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值