U方法总结

【前言】

   本文总结下U方法,手册搜索U函数、URL模式

   推荐参考文章:http://www.cnblogs.com/jianxian/p/8637061.html

【主体】

(1)URL生成

      为了配合所使用的URL模式,我们需要能够动态的根据当前的URL设置生成对应的URL地址,为此,ThinkPHP内置提供了U方法,用于URL的动态生成,可以确保项目在移植过程中不受环境的影响。

①U方法的定义规则如下(方括号内参数根据实际应用决定):

U('地址表达式',['参数'],['伪静态后缀'],['显示域名'])

②地址表达式

地址表达式的格式定义如下:

[模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2...

如果不定义模块的话 就表示当前模块名称,下面是一些简单的例子:

U('User/add') // 生成User控制器的add操作的URL地址
U('Blog/read?id=1') // 生成Blog控制器的read操作 并且id为1的URL地址
U('Admin/User/select') // 生成Admin模块的User控制器的select操作的URL地址

 

(2)URL模式

      入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作:

http://serverName/index.php/模块/控制器/操作

      这是3.2版本的标准URL格式,可以通过设置模块绑定或者域名部署等方式简化URL地址中的模块及控制器名称。

①URL大小写

     ThinkPHP框架的URL是区分大小写(主要是针对模块、控制器和操作名,不包括应用参数)的,这一点非常关键,因为ThinkPHP的命名规范是采用驼峰法(首字母大写)的规则,而URL中的模块和控制器都是对应的文件,因此在Linux环境下面必然存在区分大小写的问题。

框架内置了一个配置参数用于解决URL大小写的问题,如下:

'URL_CASE_INSENSITIVE'  =>  true,  

      当URL_CASE_INSENSITIVE设置为true的时候表示URL地址不区分大小写,这个也是框架在部署模式下面的默认设置。

      当开启调试模式的情况下,这个参数是false,因此你会发现在调试模式下面URL区分大小写的情况。

②URL模式

      如果我们直接访问入口文件的话,由于URL中没有模块、控制器和操作,因此系统会访问默认模块(Home)下面的默认控制器(Index)的默认操作(index),因此下面的访问是等效的:

http://serverName/index.php
http://serverName/index.php/Home/Index/index

      这种URL模式就是系统默认的PATHINFO模式,不同的URL模式获取模块和操作的方法不同,ThinkPHP支持的URL模式有四种:普通模式、PATHINFO、REWRITE和兼容模式,可以设置URL_MODEL参数改变URL模式。

列表:

URL模式               URL_MODEL设置

普通模式                   0

PATHINFO模式   1

REWRITE模式   2

兼容模式                   3

      如果你整个应用下面的模块都是采用统一的URL模式,就可以在应用配置文件中设置URL模式,如果不同的模块需要设置不同的URL模式,则可以在模块配置文件中设置。

详解:https://www.kancloud.cn/manual/thinkphp/1697

 

 

 

 

 

 

 

 

.

猜你喜欢

转载自570109268.iteye.com/blog/2415233