ThinkPHP URL伪静态和U方法的使用

首先, 在配置文件(config.php)里设置 URL_HTML_SUFFIX 设置静态后缀
<?php

return array(

'URL_HTML_SUFFIX'=>'.html',  //随意, 可设置其它的。

....

//其它配置信息

);

?>

来看下手册U方法的定义规则

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

U('[项目://][路由@][分组名-模块/]操作? 参数1=值1[&参数N=值N]')

或者用数组的方式传入参数

U('[项目://][路由@][分组名-模块/]操作',array('参数1'=>'值1' [,'参数N'=>'值N']))

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

U('Myapp://User/add') // 生成Myapp项目的User模块的add操作的URL地址

U('Blog/read?id=1') // 生成Blog模块的read操作 并且id为1的URL地址

U('Admin-User/select') // 生成Admin分组的User模块的select操作的URL地址

参数请确保使用 ?id=1&name=tp或者数组的方式来定义,虽然有些情况下

U('Blog/read/id/1')和U('Blog/read?id=1')的效果一样
但是在不同的URL设置情况下,会导致解析的错误。

根据项目的不同URL设置,同样的U方法调用可以智能地对应产生不同的URL地址效果,例如针对

U('Blog/read?id=1')这个定义为例。

如果当前URL设置为普通模式的话,最后生成的URL地址是: 

http://<serverName>/index.php?m=Blog&a=read&id=1 

如果当前URL设置为PATHINFO模式的话,同样的方法最后生成的URL地址是: 

http://<serverName>/index.php/Blog/read/id/1 

如果当前URL设置为REWRITE模式的话,同样的方法最后生成的URL地址是: 

http://<serverName>/Blog/read/id/1 

如果当前URL设置为REWRITE模式,并且设置了伪静态后缀为.html的话,同样的方法最后生成的URL地址是: 

http://<serverName>/Blog/read/id/1.html 

U方法还可以支持路由,如果我们定义了一个名称为View的路由,指向Blog模块的read操作
参数是id,那么U('View@?id=1')生成的URL地址是:

http://<serverName>/index.php/View/id/1

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值