ThinkPHP函数详解:U方法
【http://www.thinkphp.cn/info/132.html】
U方法用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址,格式为:
U('地址','参数','伪静态','是否跳转','显示域名');
在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。
在模板中的调用格式需要采用 {:U('地址', '参数'…)} 的方式
如果当前URL设置为普通模式的话,最后生成的URL地址是:
此外,U方法的第5个参数如果设置为true,表示自动识别当前的域名,并且会自动根据子域名部署设置APP_SUB_DOMAIN_DEPLOY和APP_SUB_DOMAIN_RULES自动匹配生成当前地址的子域名。
如果开启了URL_CASE_INSENSITIVE,则会统一生成小写的URL地址。
U('地址','参数','伪静态','是否跳转','显示域名');
在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。
在模板中的调用格式需要采用 {:U('地址', '参数'…)} 的方式
基本用法
U方法的用法示例:- U('User/add') // 生成User模块的add操作地址
复制代码
也可以支持分组调用:- U('Home/User/add') // 生成Home分组的User模块的add操作地址
复制代码
当然,也可以只是写操作名,表示调用当前模块的- U('add') // 生成当前访问模块的add操作地址
复制代码
除了分组、模块和操作名之外,我们也可以传入一些参数:- U('Blog/read?id=1') // 生成Blog模块的read操作 并且id为1的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')
复制代码
但是不允许使用下面的定义方式来传参数:- 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
复制代码
如果你同时还设置了PATHINFO分隔符的话:- 'URL_PATHINFO_DEPR'=>'_'
复制代码
就会生成- http://serverName/Blog_read_id_1
复制代码
如果当前URL设置为REWRITE模式,并且设置了伪静态后缀为html的话,同样的方法最后生成的URL地址是:- http://serverName/Blog/read/id/1.html
复制代码
如果设置了多个伪静态支持,那么会自动取第一个伪静态后缀添加到URL地址后面,当然你也可以手动在U方法里面指定要生成的伪静态后缀,例如:- U('Blog/read','id=1','xml')
复制代码
就会生成- http://serverName/Blog/read/id/1.xml
复制代码
路由支持
U方法还可以支持路由,如果我们定义了一个路由规则为:- 'news/:id\d'=>'News/read'
复制代码
那么可以使用- U('/news/1')
复制代码
最终生成的URL地址是:- http://serverName/index.php/news/1
复制代码
域名支持
如果你的应用涉及到多个子域名的操作地址,那么也可以在U方法里面指定需要生成地址的域名,例如:- 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地址中的锚点,例如:- U('Blog/read#comment','id=1','html')
复制代码
就会生成- http://serverName/Blog/read/id/1.html#comment
复制代码
如果域名和锚点同时使用的话,注意顺序为先锚点后域名,例如:- U('Blog/read#comment@blog','id=1');
相关推荐
8. **U 函数**:生成URL地址,根据指定的参数生成完整的URL字符串,例如,`U('User/index')` 生成访问 `User` 控制器 `index` 操作的URL。 9. **I 函数**:安全地获取系统的输入变量,可以防止SQL注入等安全问题。...
在ThinkPHP中,字母函数是一组简短的封装,用于简化代码编写和提高开发效率。本文将对以下字母函数进行详细解析:T、I、N、D、M、A、R、U。 1. T(模板资源定位) - T函数用于获取模板文件路径,支持模块、主题、...
- ThinkPHP5.0框架URL访问方法详解 - ThinkPHP四种URL访问方式详解 - ThinkPHP的URL路由规则与配置实例 - TP5.1框架路由操作-URL生成实例分析 以上内容详细介绍了ThinkPHP中URL跳转的各种实现方式及其应用场景,...
### ThinkPHP开发实例详解 #### 一、ThinkPHP简介 ThinkPHP是一款开源的PHP框架,遵循MVC设计模式。它简化了PHP应用的开发过程,提供了丰富的功能支持,包括但不限于ORM、缓存处理、安全机制等。对于初学者而言,...
- **助手函数**:ThinkPHP 自带了一些内置的助手函数,如 `dump()` 用于调试,`U()` 用于生成 URL 等,这些函数简化了开发过程。 - **模板引擎**:ThinkPHP 使用的是其自有的模板引擎,支持变量、循环、条件判断等...
**U函数**用于构建URL地址,它是ThinkPHP框架中非常常用的一个功能。U函数的通用格式如下: ```php U('地址','参数','伪静态','是否跳转','显示域名'); ``` - **地址**:表示目标控制器的方法名,比如`Index/index...
### ThinkPHP通用控制器实现方法详解 #### 一、引言 在现代Web开发中,MVC(Model-View-Controller)架构模式被广泛应用于构建高效、可维护的应用程序。ThinkPHP作为一款流行的PHP框架,提供了丰富的特性来简化...
### ThinkPHP 模型详解 #### 一、ThinkPHP 模型概述 ThinkPHP 是一个广泛使用的 PHP 开发框架,其强大的模型层设计使得开发者能够更高效地与数据库交互。模型(Model)作为 MVC(Model-View-Controller)架构模式...
在ThinkPHP框架中,`N`方法是一个非常实用的计数器工具,它主要用于记录和统计执行过程中的特定事件次数,比如查询次数、缓存访问次数等。此方法的灵活性使得它不仅限于核心功能,还可以广泛应用于各种自定义计数...
在给定的代码段中,`makeAcquire` 函数展示了如何在ThinkPHP中执行一个包含多表操作的事务。函数接收两个参数 `$nUsers` 和 `$nAwards`,分别代表用户数组和奖项数组,用于模拟用户获取奖品的场景。在这个过程中,有...
这个函数会实例化PHPMailer,填充必要的参数,如收件人、主题和邮件内容,然后调用`send()`方法发送邮件。这部分代码通常会根据配置文件中的数据来设置PHPMailer对象。 3. **前端界面**:创建一个HTML表单,用户...
- **函数索引**:涵盖框架初始化、请求处理、路由分发、控制器方法执行、数据模型操作、视图渲染等关键步骤中的核心函数与方法。 #### 框架流程详解 1. **主入口(index.php)** - 这是整个框架的起点,用于初始...