thinkphp中url的生成U()方法

简介:

为了配合所使用的URL模式,我们需要能够动态的根据当前的URL设置生成对应的URL地址,为此,ThinkPHP内置提供了U方法,用于URL的动态生成,可以确保项目在移植过程中不受环境的影响。
U方法的定义规则如下(方括号内参数根据实际应用决定):

U('[分组/模块/操作]?参数' [,'参数','伪静态后缀','是否跳转','显示域名'])

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

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

U方法的第二个参数支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,例如:

U('Blog/cate',array('cate_id'=>1,'status'=>1))
U('Blog/cate','cate_id=1&status=1')
U('Blog/cate?cate_id=1&status=1')

三种方式是等效的,都是 生成Blog模块的cate操作 并且cate_id为1 status为1的URL地址
但是不允许使用下面的定义方式来传参数

U('Blog/cate/cate_id/1/status/1')

根据项目的不同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方法的话,需要采用 {:U('参数1', '参数2'…)} 的方式



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5000825.html,如需转载请自行联系原作者

相关文章
|
Apache PHP Windows
去除thinkphp url中的index.php(web服务器是apache)
例如你的原路径是 http://localhost/yibuzhicheng/ index.php/Index/about.html 那么现在的地址是 http://localhost/yibuzhicheng/Index/about.html
194 0
|
缓存 前端开发 PHP
thinkphp四种url访问方式详解
本文实例分析了thinkphp的四种url访问方式。分享给大家供大家参考。具体分析如下: 一、什么是MVC   thinkphp的MVC模式非常灵活,即使只有三个中和一个也可以运行。 M -Model 编写model类 对数据进行操作 V -View  编写html文件,页面呈现 C -Controller 编写类文件(UserAction.
1522 0
|
PHP Apache
thinkPHP四种URL访问方式(二)
原文: thinkPHP四种URL访问方式(二) 四、url的4种访问方式     1.PATHINFO 模式 -- (重点)http://域名/项目名/入口文件/模块名/方法名/键1/值1/键2/值2http://localhost/thinkphp/index.
851 0
|
PHP Apache 数据格式
thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五)
原文: thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成(十五) 本章节:详细介绍thinkphp URL规则、URL伪静态、URL路由、URL重写、URL生成 一、URL规则1、默认是区分大小写的 2、如果我们不...
1489 0
|
PHP Apache SEO
ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php
原文:ThinkPHP 利用.htaccess文件的 Rewrite 规则隐藏URL中的 index.php URL重写 通常的URL里面含有index.php,为了达到更好的SEO效果可能需要去掉URL里面的index.php ,通过URL重写的方式可以达到这种效果,通常需要服务器开启URL_REWRITE模块才能支持。
1713 0
|
PHP 索引
thinkphp 3.2.3 入门示例2(URL传参数的几种方式)
原文:thinkphp中URL传参数的几种方式 在thinkphp中,url传参合asp.net中原理类似,下面就单个参数和多个参数传递方式进行一个简单讲解 1.传单个参数  单个参数这种比较简单,例如 想像edit操作里面传递一个id值,如下写法__URL__/edit/id/1 http://localhost/index.php/user/edit/id/1 id和其值1要分别位于/后面 后台获取id通过    $id=$_GET['id']   即可获取其具体值。
1846 0
|
PHP Apache Linux
thinkphp学习笔记6—url模式
原文:thinkphp学习笔记6—url模式   入口文件是应用的唯一入口,因为可以多入口,每个应用可以对应一个入口文件,系统会从rul参数中解析当前请求的模块,控制器,操作。ThinkPHP是区分大小写的,考虑到linux是区分大小写的,所以在ThinkPHP中模块,控制器,模型等都是区分大小写的,并且使用驼峰命名规则。
1361 0