• 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'…)} 的方式

  • 相关阅读:
    laravel md5+salt 密码
    sql语句 当前时间查找重复 时间戳转换
    Supesite 参数说明
    ajax
    PDO操作
    laravel paginate动态分页
    PHP iconv()函数转字符编码的问题(转)
    计算几何基础模板(2014.10.6一直沿用)
    hdu 4893
    2014 ACM/ICPC 鞍山赛区网络赛(清华命题)
  • 原文地址:https://www.cnblogs.com/gaoxuqing/p/6739394.html
Copyright © 2020-2023  润新知