Thinkphp U方法
u 方法是 thinkphp 內(nèi)置的一個快捷方法,可以根據(jù)系統(tǒng) url 模式配置動態(tài)的生成智能的 url 地址。
由于 thinkphp 支持各種不同的?URL 模式,另外還有項目分組模式,因此當部署環(huán)境發(fā)生變化時,有時候可能會改變 URL 模式,而 U 方法正是解決不同環(huán)境配置情況下的 URL 統(tǒng)一問題。除了動態(tài)生成 URL 以自適應系統(tǒng)配置外,U 方法還有一個好處是可以自動加上偽靜態(tài)后綴。
U 方法語法
U 方法的定義規(guī)則如下:
('[分組/模塊/操作]?參數(shù)'?[,'參數(shù)','偽靜態(tài)后綴','是否跳轉(zhuǎn)','顯示域名'])
方括號內(nèi)為可選參數(shù),如果不指明分組、模塊以及操作的話,就默認為當前分組、當前模塊與當前操作。
U方法實例
U 方法作為 ThinkPHP 的系統(tǒng)函數(shù),可以直接用于操作方法中,也可用于模板中(見后面文字)。
立即學習“PHP免費學習筆記(深入)”;
假設當前為 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 方法不僅能在操作方法中動態(tài)生成 URL 地址,其實更常用的是在模板中生成超鏈接地址:
<a>超鏈接字符</a>
生成 URL 后實際的 html 代碼為:
//?Pathinfo?模式: <a>超鏈接字符</a>
U 方法屬于 ThinkPHP 系統(tǒng)函數(shù),遵循在模板中使用系統(tǒng)函數(shù)的通用方法,即配合 {: } 使用。
U 方法中使用變量
使用于模板中的 U 方法,如果要使用變量(通常如此),需要用 . 連接符:
<a>超鏈接字符</a>
各種 URL 模式下的 U 方法結(jié)果對比
U 方法根據(jù)各種 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 模式,偽靜態(tài)后綴為 .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》