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 相关文章推荐
ThinkPHP php 框架学习笔记
Oct 30 PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
May 18 PHP
php调用mysql数据 dbclass类
May 07 PHP
PHP调用MsSQL Server 2012存储过程获取多结果集(包含output参数)的详解
Jul 03 PHP
一个PHP的远程图片抓取函数分享
Sep 25 PHP
php递归删除目录下的文件但保留的实例分享
May 10 PHP
常见的四种POST 提交数据方式(小总结)
Oct 08 PHP
CI框架简单邮件发送类实例
May 18 PHP
Smarty模板简单配置与使用方法示例
May 23 PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 PHP
laravel-admin 实现在指定的相册下添加照片
Oct 21 PHP
PHP设计模式入门之迭代器模式原理与实现方法分析
Apr 26 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文件读写操作之文件写入代码
2011/01/13 PHP
IIS6.0 开启Gzip方法及PHP Gzip函数分享
2014/06/08 PHP
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
javascript 函数式编程
2007/08/16 Javascript
jQuery判断元素是否存在的可靠方法
2014/05/06 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
使用JavaScript刷新网页的方法
2015/06/04 Javascript
Bootstrap基本插件学习笔记之轮播幻灯片(23)
2016/12/08 Javascript
详解angular2实现ng2-router 路由和嵌套路由
2017/03/24 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
JS实现的找零张数最小问题示例
2017/11/28 Javascript
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
2018/08/22 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
OpenLayers3实现地图鹰眼以及地图比例尺的添加
2020/09/25 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
Python迭代器与生成器用法实例分析
2018/07/09 Python
Python通过Manager方式实现多个无关联进程共享数据的实现
2019/11/07 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
大学生求职简历的自我评价范文
2013/10/12 职场文书
车间统计员岗位职责
2014/01/05 职场文书
爱祖国演讲稿
2014/05/04 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
比较node.js和Deno
2021/04/27 Javascript
python文件目录操作之os模块
2021/05/08 Python
pytorch 6 batch_train 批训练操作
2021/05/28 Python
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL