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 404错误页面实现代码
Jun 22 PHP
php 团购折扣计算公式
Nov 24 PHP
深入PHP5中的魔术方法详解
Jun 17 PHP
解析MySql与Java的时间类型
Jun 22 PHP
解析strtr函数的效率问题
Jun 26 PHP
php设置session值和cookies的学习示例
Mar 21 PHP
PHP中数据类型转换的三种方式
Apr 02 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
PHP中时间加减函数strtotime用法分析
Apr 26 PHP
Yii框架使用魔术方法实现跨文件调用功能示例
May 20 PHP
Laravel框架实现定时Task Scheduling例子
Oct 22 PHP
PHP autoload使用方法及步骤详解
Sep 05 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面向对象分析设计的经验原则
2008/09/20 PHP
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
PHP中上传多个文件的表单设计例子
2014/11/19 PHP
php取得字符串首字母的方法
2015/03/25 PHP
Yii多表联合查询操作详解
2016/06/02 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
PHP 爬取网页的主要方法
2018/07/13 PHP
JavaScript网页制作特殊效果用随机数
2007/05/22 Javascript
javascript编码的几个方法详细介绍
2013/01/06 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
在JavaScript中正确引用bind方法的应用
2015/05/11 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
2015/10/08 Javascript
AngularJS模板加载用法详解
2016/11/04 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
详解如何使用Vue2做服务端渲染
2017/03/29 Javascript
关于Bootstrap按钮组件消除黄框的方法
2017/05/19 Javascript
JS实现求数组起始项到终止项之和的方法【基于数组扩展函数】
2017/06/13 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
Openlayers实现距离面积测量
2020/09/28 Javascript
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
python中break、continue 、exit() 、pass终止循环的区别详解
2019/07/08 Python
详解Python 4.0 预计推出的新功能
2019/07/26 Python
Django用户认证系统 组与权限解析
2019/08/02 Python
python selenium实现发送带附件的邮件代码实例
2019/12/10 Python
python字符串的index和find的区别详解
2020/06/20 Python
入党转预备思想汇报
2014/01/07 职场文书
12月小学生校园广播稿
2014/02/04 职场文书
幼师求职自荐信
2014/05/31 职场文书
农行心得体会
2014/09/02 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
赔偿协议书怎么写
2015/01/28 职场文书
2019各种承诺书范文
2019/06/24 职场文书
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
使用 MybatisPlus 连接 SqlServer 数据库解决 OFFSET 分页问题
2022/04/22 SQL Server