ThinkPHP U方法
U 方法是ThinkPHP 內建的快捷方法,可以根據系統URL 模式配置動態的產生智慧的URL 位址。
由於ThinkPHP 支援各種不同的 URL 模式,另外還有專案分組模式,因此當部署環境發生變化時,有時可能會改變URL 模式,而U 方法正是解決不同環境配置情況下的URL 統一問題。除了動態產生 URL 以自適應系統配置外,U 方法還有一個好處是可以自動加上偽靜態後綴。
U 方法語法
U 方法的定義規則如下:
('[分组/模块/操作]?参数' [,'参数','伪静态后缀','是否跳转','显示域名'])
方括號內為可選參數,如果不指明分組、模組以及操作的話,就預設為目前分組、目前模組與目前操作。
U方法實例
U 方法作為 ThinkPHP 的系統函數,可以直接用於操作方法中,也可用於模板中(見後面文字)。
假設目前為Index 模組的index 操作,產生目前模組的 list 操作URL:
U('list?cat_id=1&status=1')
產生的URL 為相對連結:http://www.5idev.com/index.php /Index/list/cat_id/1/status/1
#同時U 方法也支援下面兩種定義格式,上面的範例與下面的定義格式是等效的:
U'list',array('cate_id'=>1,'status'=>1)) U'list','cate_id=1&status=1')
#模板中使用U 方法
U 方法不僅能在操作方法中動態產生URL 位址,其實更常用的是在模板中產生超連結位址:
超链接字符
生成URL 後實際的html 程式碼為:
// Pathinfo 模式: <a href="http://www.5idev.com/lindex.php/blog/list/cat_id/1/status/1">超链接字符</a>
U 方法屬於ThinkPHP 系統函數,遵循在模板中使用系統函數的通用方法,即配合{: } 使用。
U 方法中使用變數
使用於模板中的U 方法,如果要使用變數(通常如此),則需要用. 連接符號:
<a href="{:U('blog/list?cat_id='.$vo['cat_id'].'&status=1')}">超链接字符</a>
各種URL 模式下的U 方法結果比較
U 方法根據各種URL 模式而自適應的生成不同的URL 格式,如上述範例在各模式下生成的URL 比較如下:
普通相容模式:http://www.5idev.com/index.php?m=Index&a=list&cat_id=1&status=1
Pathinfo 模式:http://www.5idev.com/index.php/Index/list/cat_id/1/status/1
Rewrite 模式:http ://www.5idev.com/Index/list/cat_id/1/status/1
Rewrite 模式,偽靜態字尾為.html:http://www.5idev. com/Index/list/cat_id/1/status/1.html
Rewrite 模式,使用- 分隔符號與.html 後綴:http://www.5idev.com/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地址
推薦教學:《TP5 》
以上是ThinkPHP使用U方法自動產生URL超鏈接的詳細內容。更多資訊請關注PHP中文網其他相關文章!