`

ThinkPHP函数详解:U方法

    博客分类:
  • PHP
阅读更多

ThinkPHP函数详解:U方法

【http://www.thinkphp.cn/info/132.html】
U方法用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址,格式为:
U('地址','参数','伪静态','是否跳转','显示域名');
在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。
在模板中的调用格式需要采用 {:U('地址', '参数'…)} 的方式

基本用法

U方法的用法示例:
  1. U('User/add') // 生成User模块的add操作地址
复制代码
也可以支持分组调用:
  1. U('Home/User/add') // 生成Home分组的User模块的add操作地址
复制代码
当然,也可以只是写操作名,表示调用当前模块的
  1. U('add') // 生成当前访问模块的add操作地址
复制代码
除了分组、模块和操作名之外,我们也可以传入一些参数:
  1. U('Blog/read?id=1') // 生成Blog模块的read操作 并且id为1的URL地址
复制代码
U方法的第二个参数支持传入参数,支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,下面几种方式都是等效的:
  1. U('Blog/cate',array('cate_id'=>1,'status'=>1))
  2. U('Blog/cate','cate_id=1&status=1')
  3. U('Blog/cate?cate_id=1&status=1')
复制代码
但是不允许使用下面的定义方式来传参数:
  1. U('Blog/cate/cate_id/1/status/1')
复制代码
根据项目的不同URL设置,同样的U方法调用可以智能地对应产生不同的URL地址效果,例如针对:
  1. U('Blog/read?id=1')
复制代码
这个定义为例。
如果当前URL设置为普通模式的话,最后生成的URL地址是:
  1. http://serverName/index.php?m=Blog&a=read&id=1
复制代码
如果当前URL设置为PATHINFO模式的话,同样的方法最后生成的URL地址是:
  1. http://serverName/index.php/Blog/read/id/1
复制代码
如果当前URL设置为REWRITE模式的话,同样的方法最后生成的URL地址是:
  1. http://serverName/Blog/read/id/1
复制代码
如果你同时还设置了PATHINFO分隔符的话:
  1. 'URL_PATHINFO_DEPR'=>'_'
复制代码
就会生成
  1. http://serverName/Blog_read_id_1
复制代码
如果当前URL设置为REWRITE模式,并且设置了伪静态后缀为html的话,同样的方法最后生成的URL地址是:
  1. http://serverName/Blog/read/id/1.html
复制代码
如果设置了多个伪静态支持,那么会自动取第一个伪静态后缀添加到URL地址后面,当然你也可以手动在U方法里面指定要生成的伪静态后缀,例如:
  1. U('Blog/read','id=1','xml')
复制代码
就会生成
  1. http://serverName/Blog/read/id/1.xml
复制代码

路由支持

U方法还可以支持路由,如果我们定义了一个路由规则为:
  1. 'news/:id\d'=>'News/read'
复制代码
那么可以使用
  1. U('/news/1')
复制代码
最终生成的URL地址是:
  1. http://serverName/index.php/news/1
复制代码

域名支持

如果你的应用涉及到多个子域名的操作地址,那么也可以在U方法里面指定需要生成地址的域名,例如:
  1. U('Blog/read@blog.thinkphp.cn','id=1');
复制代码
@后面传入需要指定的域名即可。

此外,U方法的第5个参数如果设置为true,表示自动识别当前的域名,并且会自动根据子域名部署设置APP_SUB_DOMAIN_DEPLOY和APP_SUB_DOMAIN_RULES自动匹配生成当前地址的子域名。
如果开启了URL_CASE_INSENSITIVE,则会统一生成小写的URL地址。

锚点支持

3.1.2版本开始,U方法还可以支持生成URL地址中的锚点,例如:
  1. U('Blog/read#comment','id=1','html')
复制代码
就会生成
  1. http://serverName/Blog/read/id/1.html#comment
复制代码
如果域名和锚点同时使用的话,注意顺序为先锚点后域名,例如:
  1. U('Blog/read#comment@blog','id=1');
分享到:
评论

相关推荐

    ThinkPHP函数详解总结

    8. **U 函数**:生成URL地址,根据指定的参数生成完整的URL字符串,例如,`U('User/index')` 生成访问 `User` 控制器 `index` 操作的URL。 9. **I 函数**:安全地获取系统的输入变量,可以防止SQL注入等安全问题。...

    thinkphp 字母函数详解T/I/N/D/M/A/R/U

    在ThinkPHP中,字母函数是一组简短的封装,用于简化代码编写和提高开发效率。本文将对以下字母函数进行详细解析:T、I、N、D、M、A、R、U。 1. T(模板资源定位) - T函数用于获取模板文件路径,支持模块、主题、...

    thinkphp中的url跳转用法分析

    - ThinkPHP5.0框架URL访问方法详解 - ThinkPHP四种URL访问方式详解 - ThinkPHP的URL路由规则与配置实例 - TP5.1框架路由操作-URL生成实例分析 以上内容详细介绍了ThinkPHP中URL跳转的各种实现方式及其应用场景,...

    thinkphp 开发实例

    ### ThinkPHP开发实例详解 #### 一、ThinkPHP简介 ThinkPHP是一款开源的PHP框架,遵循MVC设计模式。它简化了PHP应用的开发过程,提供了丰富的功能支持,包括但不限于ORM、缓存处理、安全机制等。对于初学者而言,...

    thinkPHP 范例

    - **助手函数**:ThinkPHP 自带了一些内置的助手函数,如 `dump()` 用于调试,`U()` 用于生成 URL 等,这些函数简化了开发过程。 - **模板引擎**:ThinkPHP 使用的是其自有的模板引擎,支持变量、循环、条件判断等...

    thinkphp学习笔记

    **U函数**用于构建URL地址,它是ThinkPHP框架中非常常用的一个功能。U函数的通用格式如下: ```php U('地址','参数','伪静态','是否跳转','显示域名'); ``` - **地址**:表示目标控制器的方法名,比如`Index/index...

    thinkPHP通用控制器实现方法示例

    ### ThinkPHP通用控制器实现方法详解 #### 一、引言 在现代Web开发中,MVC(Model-View-Controller)架构模式被广泛应用于构建高效、可维护的应用程序。ThinkPHP作为一款流行的PHP框架,提供了丰富的特性来简化...

    thinkphp模型

    ### ThinkPHP 模型详解 #### 一、ThinkPHP 模型概述 ThinkPHP 是一个广泛使用的 PHP 开发框架,其强大的模型层设计使得开发者能够更高效地与数据库交互。模型(Model)作为 MVC(Model-View-Controller)架构模式...

    ThinkPHP之N方法实例详解

    在ThinkPHP框架中,`N`方法是一个非常实用的计数器工具,它主要用于记录和统计执行过程中的特定事件次数,比如查询次数、缓存访问次数等。此方法的灵活性使得它不仅限于核心功能,还可以广泛应用于各种自定义计数...

    thinkphp 多表 事务详解

    在给定的代码段中,`makeAcquire` 函数展示了如何在ThinkPHP中执行一个包含多表操作的事务。函数接收两个参数 `$nUsers` 和 `$nAwards`,分别代表用户数组和奖项数组,用于模拟用户获取奖品的场景。在这个过程中,有...

    ThinkPHP3.2.3框架邮件发送功能图文实例详解

    这个函数会实例化PHPMailer,填充必要的参数,如收件人、主题和邮件内容,然后调用`send()`方法发送邮件。这部分代码通常会根据配置文件中的数据来设置PHPMailer对象。 3. **前端界面**:创建一个HTML表单,用户...

    thinkhphp5.0源码讲解

    - **函数索引**:涵盖框架初始化、请求处理、路由分发、控制器方法执行、数据模型操作、视图渲染等关键步骤中的核心函数与方法。 #### 框架流程详解 1. **主入口(index.php)** - 这是整个框架的起点,用于初始...

Global site tag (gtag.js) - Google Analytics