原文:ThinkPhp学习02

一、什么是MVC               
 M -Model 编写model类 对数据进行操作
 V -View  编写html文件,页面呈现
 C -Controller 编写类文件(UserAction.class.php)
二、ThinkPHP的MVC特点        
三、ThinkPHP的MVC对应的目录   
 M 项目目录/应用目录/Lib/Model
 V 项目目录/应用目录/Tpl
 C 项目目录/应用目录/Lib/Action
四、url访问C                 
五、url的4种访问方式          
  1.PATHINFO 模式 -- 重点!!!!!!
  http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2

如:http://localhost/thinkphp/test/index.php/Index/show

PATHINFO模式下面,URL是可定制的,例如,通过修改config.php下面的配置:

<?php
return array(
//'配置项'=>'配置值'
'URL_PATHINFO_DEPR'=>'-', // 更改PATHINFO参数分隔符.默认是/
//'URL_CASE_INSENSITIVE' =>true, //开启不区分大小写 );
?>

2.普通模式
  http://域名/项目名/入口文件?m=模块名&a=方法名&键1=值1&键2=值2

如:http://localhost/thinkphp/test/index.php?m=Index&a=show
  3.REWRITE模式
  http://域名/项目名/模块名/方法名/键1/值1/键2/值2

(1)需要apache支持,打开httpd.conf

开启rewrite功能,并重启apache

 #LoadModule rewrite_module modules/mod_rewrite.so  //去掉#号

(2)将.htaccess放置到项目文件夹下

 <IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

ok,然后就可以http://localhost/thinkphp/test/Index/show 直接访问了,而不需要添加index.php
  4.兼容模式
  http://域名/项目名/入口文件?s=模块名/方法名/键1/值1/键2/值2

如:http://localhost/thinkphp/test/Index.php/?s=Index/show

在调整初期会遇到缓存问题可以通过删除Runtime文件夹,或者开启debug模式

//开启调试模式,默认是关闭
define('APP_DEBUG',true);

注意开启debug模式后 要注意url上大小写规范,否则会报错,也可以在config.php设置

'URL_CASE_INSENSITIVE' =>true,  //开启不区分大小写

ThinkPhp学习02的更多相关文章

  1. ThinkPHP学习总结

    ThinkPHP学习总结 网站开发使用的thinkPHP5.0在此总结备查 MVC关系功能图 一.Thinkphp开发规范 l 类 类库.函数文件统一以.php为后缀: 类的文件名均以命名空间定义,并 ...

  2. JavaScript学习02 基础语法

    JavaScript学习02 基础语法 JavaScript中很多基础内容和Java中大体上基本一样,所以不需要再单独重复讲了,包括: 各种算术运算符.比较运算符.逻辑运算符: if else语句.s ...

  3. Java虚拟机JVM学习02 类的加载概述

    Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...

  4. Python学习02 列表 List

    Python学习02 列表 List Python列表 List Python中的列表(List)用逗号分隔,方括号包围(comma-separated values (items) between ...

  5. Android Testing学习02 HelloTesting 项目建立与执行

    Android Testing学习02 HelloTesting 项目建立与执行 Android测试,分为待测试的项目和测试项目,这两个项目会生成两个独立的apk,但是内部,它们会共享同一个进程. 下 ...

  6. Java学习02

    Java学习02 1.导入内部的包 一.在包的下面加入下面一句话: import    java.util.Scanner; 二.在类中 Scanner input=new     Sanner(Sy ...

  7. ThinkPhp学习13

    原文:ThinkPhp学习13 简单登录验证 创建Login类 <?php class LoginAction extends Action { function index(){ $this- ...

  8. ThinkPhp学习12

    原文:ThinkPhp学习12 二.输出模板内容      (重点) a.display 1.display中没有参数    $this->display(); 2.可以带参数    $this ...

  9. ThinkPhp学习11

    原文:ThinkPhp学习11 一.模板的使用        (重点) a.规则 模板文件夹下[TPL]/[分组文件夹/][模板主题文件夹/]和模块名同名的文件夹[Index]/和方法名同名的文件[i ...

随机推荐

  1. 我的Python成长之路---第一天---Python基础(3)---2015年12月26日(雾霾)

    四.变量和常量 变量是用来存储程序运行期间需要临时保存可以不断改变的数据的标识符.Python有自身的内存回收机制,所以在开发过程中不用考虑变量的销毁等 Python中的变量名命名有如下规则: 1.变 ...

  2. 转:Android -- ActivityLifeCycleCallbacks

    http://www.cnblogs.com/yydcdut/p/4945990.html 一个不常见类的使用,名字叫ActivityLifeCycleCallbacks 通常一个项目中有很多个act ...

  3. Docker学习笔记(4) — 开启Docker远程访问

    默认情况下,Docker守护进程会生成一个socket(/var/run/docker.sock)文件来进程本地进程通信,而不会监听任何端口,因此只能在本地使用docker客户端或者使用Docker ...

  4. java字符操作获取汉字的拼音以及其它经常使用工具

    公司需求年年有,今年有点小特殊,哈哈. 忽然加了个需求,说要实现汉字转拼音查询. 在努力下写出来了,如今分享一下吧!.! /** * 汉字转拼音缩写 * * @param str * 要转换的汉字字符 ...

  5. android软键盘的管理和属性的设置

    android:windowSoftInputMode activity主窗口与软键盘的交互模式,可以用来避免输入法面板遮挡问题,Android1.5后的一个新特性. 这个属性能影响两件事情: [一] ...

  6. textarea内容有换行时存入数据库丢失问题的解决 (转载)

    http://blog.csdn.net/zhang_j_h/article/details/44563167 存入: function GetInputData(id, cmd) { var pos ...

  7. C#调用存储过程实现分页(个人代码笔记)

    分页的存储过程: drop proc LoadPageMain create Proc LoadPageMain @pageIndex )) Fid     ) ].Rows )            ...

  8. EFM32在使用IAR开发环境配置ICf文件以及指定程序存储地址空间

    EFM32在IAR开发环境下指定代码,数据的存储空间 为了便于后续的项目升级,管理,需要对代码,数据的存储空间加以设定,也在网上找下相关的资料,笔者水平有限, 如下内容不一定完全正确,如有错误之后,还 ...

  9. if(男深圳集体户口&&女非深圳户口)深圳准生证办理材料及流程

    所需材料 一.女方需要办理流动人口婚育证明(蓝色的小本本). 办理材料.各地可能不同.这个是在女方的户籍所在地办理(最好在女方户籍所在地办理女方初婚未育证明). 二.男方在公司开出初婚未育证明. 三. ...

  10. JSP页面小脚本实现日期比較,Java同理,精简过后的,可能在效率上不太好,有大大能够给优化下就更好了

    <%         java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd ...