首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

ThinkPHP U 方法生成 URL 完全指南:多模式自適應、路由支持與參數傳遞最佳實踐

     編輯:PHP 綜合知識

語法規則

// 字符串形式
U('[項目://][路由@][分組名-模塊/]操作?參數1=值1[&參數N=值N]')

// 數組形式(推薦,避免特殊字符轉義問題)
U('[項目://][路由@][分組名-模塊/]操作', array('參數1'=>'值1', '參數N'=>'值N'))

核心原則

  • 省略項目/模塊 表示當前項目/模塊。
  • 參數必須用 ?key=val&... 或數組形式,雖然 U('Blog/read/id/1') 在 PATHINFO 模式下有效,但切換 URL 模式時極易出錯,強烈不推薦。

多 URL 模式智能適配示例

以 U('Blog/read?id=1') 為例:

URL 模式生成地址
普通模式https://<server>/index.php?m=Blog&a=read&id=1
PATHINFOhttps://<server>/index.php/Blog/read/id/1
REWRITEhttps://<server>/Blog/read/id/1
REWRITE + .html 後綴https://<server>/Blog/read/id/1.html

同一調用代碼,零修改適配不同部署環境,極大提升項目可移植性。

路由支持

定義路由 View → Blog/read(參數 id),則:

U('View@?id=1') // 生成 https://<server>/index.php/View/id/1 (PATHINFO下)

限制:僅支持簡單路由,不支持泛路由、正則路由。

常用示例速查

U('Myapp://User/add')          // 跨項目生成 Myapp 項目 User/add URL
U('Blog/read?id=1')              // 當前項目 Blog 模塊 read 操作帶參
U('Admin-User/select')           // Admin 分組 User 模塊 select 操作
U('Index/index', array('page'=>2, 'size'=>20)) // 數組傳參,自動拼接 ?page=2&size=20
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved