onethink U方法
ThinkPHP U方法
U 方法是 ThinkPHP 内置的一个快捷方法,可以根据系统 URL 模式配置动态的生成智能的 URL 地址。
由于 ThinkPHP 支持各种不同的 URL 模式,另外还有分组模式,因此当环境发生变化时,有时候可能会改变 URL 模式,而 U 方法正是解决不同配置情况下的 URL 统一问题。除了动态生成 URL 以自适应系统配置外,U 方法还有一个好处是可以自动加上伪静态后缀。
U方法语法
U 方法的定义规则如下:
U('[项目://][路由@][分组名-模块/]操作?参数1=值1[&参数N=值N]')
// 或者:
U('[项目://][路由@][分组名-模块/]操作',array('参数1'=>'值1' [,'参数N'=>'值N']))
U方法实例
假设当前为 Index 模块的 index 操作,生成当前模块的 list 操作 URL:
U('list?cat_id=1&status=1')
生成的 URL 为相对链接:index.php/Index/list/cat_id/1/status/1
模板中使用 U 方法
U 方法实际属于 ThinkPHP 系统函数,可以直接使用,更多可参见《ThinkPHP 模板中使用函数》。通常 U 方法用于模板生成超链接:
<a href="{:U('list?cat_id=1&status=1')}">超链接字符</a>
生成 URL 后实际的 html 代码为:
<a href="index.php/Index/list/cat_id/1/status/1">超链接字符</a>
U 方法中使用变量,需要用 . 连接符:
<a href="{:U('list?cat_id='.$catList['cat_id'].'&status=1')}">超链接字符</a>
各种 URL 模式下的对比
U 方法根据 URL 模式的不同而自适应的生成不同的 URL 格式,如上面例子在各模式下生成的 URL 对比如下:
- 普通兼容模式:index.php?m=Index&a=list&cat_id=1&status=1
- PATHINFO 模式:index.php/Index/list/cat_id/1/status/1
- REWRITE 模式:Index/list/cat_id/1/status/1
- REWRITE 模式,伪静态后缀为 .html:Index/list/cat_id/1/status/1.html
- REWRITE 模式,使用 - 分隔符与 .html 后缀:Index-list-cat_id-1-status-1.html
常见 U 方法使用例子
// 当前模块 list 操作
U('list?cat_id=1&status=1')
// 其他模块操作
U('Blog/read?id=1') // 生成Blog模块的read操作,并且id为1的URL地址
// 其他分组
U('Admin-User/view?uid=1') // 生成Admin分组的User模块的view操作的URL地址
U 方法也可以在操作中使用,与使用普通函数用法一致(不需要 $this->)。
onethink U方法相关推荐
- amazon 工作流服务_我在亚马逊仓库找了份工作,却没有和一个人说话
amazon 工作流服务 重点 (Top highlight) A few weeks ago, I had just completed an application to work in a wa ...
- 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群
作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...
- Java面试题大全2021版
一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...
- php addall,ThinkPHP3.2框架使用addAll()批量插入数据的方法
这篇文章主要介绍了ThinkPHP3.2框架使用addAll()批量插入数据的方法,结合实例形式分析了thinkPHP针对单条数据插入及批量数据插入操作的相关实现技巧,需要的朋友可以参考下 本文实例讲 ...
- thinkphp mysql批量入库_ThinkPHP3.2框架使用addAll()批量插入数据的方法
本文实例讲述了ThinkPHP3.2框架使用addAll()批量插入数据的方法.分享给大家供大家参考,具体如下: thinkphp中model类的addAll()方法可以将数据同时添加到数据库中. / ...
- addall php,ThinkPHP3.2框架使用addAll()批量插入数据的方法
本文实例讲述了ThinkPHP3.2框架使用addAll()批量插入数据的方法.分享给大家供大家参考,具体如下: thinkphp中model类的addAll()方法可以将数据同时添加到数据库中. / ...
- onethink钩子
首先聊聊钩子吧,其实,刚开始接触onethink时,我也挺晕的,后面发现,这个钩子 和 我曾经用的一个博客系统里面的挂载点 很像!甚至就可以说,钩子就是挂载点 挂载点:在系统中提供给你一个挂载点,我们 ...
- apmserv 5.2.6 php升级,APMServ5.2.6升级PHP版本和启用GD库等插件的方法
这两天看了下ThinkPHP3.2手册,感觉上要比3.1更好用些,虽然很多人吐槽无法顺利升级框架.本打算用3.2的框架写个超简单的站,因为功能就只有一点,实在懒得用什么现成程序了.可看了下OneThi ...
- onethink中修改ucenter用户的密码
onethink安装好之后,数据库中的两张表(忽略表前缀):ucenter_member和member表将作为用户表存在.在Admin后台新增用户时,这两张表将进行插入操作. 不过,如果想自己在前台注 ...
最新文章
- FFT ---- 2021牛客多校第一场 H Hash Function
- 大数据分析之环境部署
- stm32程序怎么设置apb2总线时钟_stm32学习笔记
- web网页期末作业-在线教育
- 关于学校计算机的情景剧剧本,有关学校后勤的情景剧剧本《默默奉献》
- java integer 不变模式_《JAVA与模式》之不变模式
- 海淘第一单——KindleTouch
- 20170708xlVBA添加新产品修改公式
- maven向本土仓库导入jar包(处理官网没有的jar包)
- 豆丁文档无需豆元直接下载
- c语言 停车管理系统
- 【MATLAB imagesc 背景色】
- 测试质量体系搭建--测试团队目标
- 微信设置字体后微信浏览器页面字体也会跟着改变的解决办法
- APP开通支付宝支付 转账功能
- 计算机专业简历教育背景怎么写,简历中的教育背景应该怎么写
- windows下C盘文件夹管理员权限设置
- 云服务器显示异地登录,云服务器异地登录异常
- 用 JAVA 实现画板
- GlobalSign的旗下的SSL证书产品