ThinkPHP中U方法的使用浅析


Posted in PHP onJune 13, 2014

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方法的路由支持 仅支持简单路由,不支持泛路由和正则路由

PHP 相关文章推荐
PHP版自动生成文章摘要
Jul 23 PHP
php 模拟POST|GET操作实现代码
Jul 20 PHP
PHP 代码规范小结
Mar 08 PHP
php函数array_merge用法一例(合并同类数组)
Feb 03 PHP
基于PHP CURL用法的深入分析
Jun 09 PHP
解析thinkphp的左右值无限分类
Jun 20 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
Mar 03 PHP
PHP封装的HttpClient类用法实例
Jun 17 PHP
PHP魔术方法的使用示例
Jun 23 PHP
Laravel使用Caching缓存数据减轻数据库查询压力的方法
Mar 15 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
PHP实现单例模式最安全的做法
Jun 13 #PHP
PHP5.5和之前的版本empty函数的不同之处
Jun 13 #PHP
PHP输出英文时间日期的安全方法(RFC 1123格式)
Jun 13 #PHP
PHP中多维数组的foreach遍历示例
Jun 13 #PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
Jun 13 #PHP
php smarty truncate UTF8乱码问题解决办法
Jun 13 #PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
Jun 13 #PHP
You might like
PHP中去除换行解决办法小结(PHP_EOL)
2011/11/27 PHP
如何用php获取程序执行的时间
2013/06/09 PHP
Youku 视频绝对地址获取的方法详解
2013/06/26 PHP
从刷票了解获得客户端IP的方法
2015/09/21 PHP
Laravel+jQuery实现AJAX分页效果
2016/09/14 PHP
jQuery方法简洁实现隔行换色及toggleClass的使用
2013/03/15 Javascript
如何在父窗口中得知window.open()出的子窗口关闭事件
2013/10/15 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
2015/01/23 Javascript
javascript 应用小技巧方法汇总
2015/07/05 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
原生js实现获取form表单数据代码实例
2019/03/27 Javascript
Vue表单控件数据绑定方法详解
2020/02/05 Javascript
React组件设计模式之组合组件应用实例分析
2020/04/29 Javascript
Python使用正则匹配实现抓图代码分享
2015/04/02 Python
简单介绍Python中的struct模块
2015/04/28 Python
python实现JAVA源代码从ANSI到UTF-8的批量转换方法
2015/08/10 Python
使用Python求解最大公约数的实现方法
2015/08/20 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
Django ManyToManyField 跨越中间表查询的方法
2018/12/18 Python
使用Python自动化破解自定义字体混淆信息的方法实例
2019/02/13 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
2019/09/11 Python
python实现实时视频流播放代码实例
2020/01/11 Python
Python捕获异常堆栈信息的几种方法(小结)
2020/05/18 Python
Python3+Flask安装使用教程详解
2021/02/16 Python
PHP开发工程师面试问题集锦
2012/11/01 面试题
创业计划书撰写原则
2014/01/25 职场文书
幼儿评语大全
2014/04/30 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
安全知识竞赛主持词
2015/06/30 职场文书
公安忠诚教育心得体会
2016/01/23 职场文书
MySQL限制查询和数据排序介绍
2022/03/25 MySQL
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python