首頁  >  文章  >  php框架  >  ThinkPHP使用U方法自動產生URL超鏈接

ThinkPHP使用U方法自動產生URL超鏈接

尚
轉載
2020-05-06 09:16:073854瀏覽

ThinkPHP使用U方法自動產生URL超鏈接

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(&#39;blog/list?cat_id=&#39;.$vo[&#39;cat_id&#39;].&#39;&status=1&#39;)}">超链接字符</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(&#39;list?cat_id=1&status=1&#39;)
// 其他模块操作
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中文網其他相關文章!

陳述:
本文轉載於:oschina.net。如有侵權,請聯絡admin@php.cn刪除