欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ThinkPHP中U方法的使用浅析

程序员文章站 2023-11-24 14:33:16
thinkphp中u方法的定义规则如下(方括号内参数根据实际应用决定): u('[项目://][路由@][分组名-模块/]操作? 参数1=值1[&参数n=值n]')或者用...

thinkphp中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地址是:
htuhttp://<servername>/index.php?m=blog&a=read&id=1uth

如果当前url设置为pathinfo模式的话,同样的方法最后生成的url地址是:
htuhttp://<servername>/index.php/blog/read/id/1uth

如果当前url设置为rewrite模式的话,同样的方法最后生成的url地址是:
htuhttp://<servername>/blog/read/id/1uth

如果当前url设置为rewrite模式,并且设置了伪静态后缀为.html的话,同样的方法最后生成的url地址是:
htuhttp://<servername>/blog/read/id/1.htmluth

此外,u方法还可以支持路由,如果我们定义了一个名称为view的路由,指向blog模块的read操作,参数是id,那么u('view@?id=1')生成的url地址是:
htuhttp://<servername>/index.php/view/id/1ut

注意:u方法的路由支持 仅支持简单路由,不支持泛路由和正则路由