【摘要】:U函数支持URL路由,下面将分别介绍。数组中的键值对和URL字符串中的参数与参数值是相对应的,最终上述URL在4种URL模式中的表现形式如下。s=/content/username/ceiba在生成URL参数时,可以使用数据库中的信息作为参数值。生成URL后,界面设计人员可以在视图中进行获取了,如以下代码所示。使用U函数生成URL的格式如下。
ThinkPHP提供了4种URL模式,在实际应用开发中也许会使用多种模式进行切换。这样一来就必须面对一个问题,假设开发者使用PATHINFO作为项目的URL模式,但是在真实的生产环境中发现服务器并不支持PATHINFO,这时原先在模板中写好的链接(例如静态资源链接、栏目之间的导航链接等)将找不到相应的资源,只能重新改动模板,工作量是非常大的。ThinkPHP提供U函数,可以让URL在4种模式中自由切换,而模板并不需要改动任何代码。
U函数的格式为:U('[分组/控制器/操作]?参数'[,'参数','伪静态后缀','是否跳转','显示域名']),其中分组指的是项目分组,如果不使用项目分组则不需要填写;?后面的字符串是需要生成的参数,为了代码简洁,可以使用数组存放。U函数支持URL路由,下面将分别介绍。
假设我们需要让“http://tp.localhost/index.php/index/content/username/ceiba”URL能够在4种URL模式下运行,那么可以使用函数U生成,如下所示。
U("Index/content?username=ceiba")
参数“username”可以使用数组存放,如下所示。
U("Index/content",array("username"=>"ceiba"));
和其他配置文件一样,配置URL参数也是使用关联数组,如果有多对参数需要生成,则填写相应的数组项即可。数组中的键值对和URL字符串中的参数与参数值是相对应的,最终上述URL在4种URL模式中的表现形式如下。
(1)普通模式
http://tp.localhost/index.php?m=index&a=content&username=ceiba
(2)PATHINFO模式
http://tp.localhost/index.php/index/content/username/ceiba(www.chuimin.cn)
(3)REWRITE模式
http://tp.localhost/index/content/username/ceiba
或者
http://tp.localhost/index.php/index/content/username_ceiba.html
(4)兼容模式
http://tp.localhost/index.php?s=/content/username/ceiba
在生成URL参数时,可以使用数据库中的信息作为参数值。关于数据库的使用方式将在第7章进行介绍,在此读者只需要了解即可。生成URL后,界面设计人员可以在视图中进行获取了(为了便于管理,建议将URL统一生成一个数组,在视图中使用数组下标的方式获取),如以下代码所示。
同样,U函数能够完全支持URL路由的生成,但在实际应用开发中该功能使用得比较少,因为URL路由严格意义上来讲只是一个URL的别名,它的表现形式都已经固定不需要切换,没必要使用PHP代码生成。使用U函数生成URL的格式如下。
路由规则:'news/:id|d'=>'News/read'生成格式:U('/news/1')
URL生成不是必需的,它的功能只是为了让URL能够在4种URL模式中更容易切换,但事实上在真实的项目开发中,生产环境都是固定的,选定一种URL模式后较少改动。
相关推荐