thinkPHP中U方法的定義規則如下(方括號內參數根據實際應用決定):
U('[項目://][路由@][分組名-模塊/]操作? 參數1=值1[&參數N=值N]')
或者用數組的方式傳入參數:
U('[項目://][路由@][分組名-模塊/]操作',array('參數1'=>'值1' [,'參數N'=>'值N']))
如果不定義項目和模塊的話 就表示當前項目和模塊名稱,下面是一些簡單的例子:
U('Myapp://User/add') // 生成Myapp項目的User模塊的add操作的URL地址
U('Blog/read?id=1') // 生成Blog模塊的read操作並且id為1的URL地址
U('Admin-User/select') // 生成Admin分組的User模塊的select操作的URL地址
參數請確保使用 ?id=1&name=tp或者數組的方式來定義,雖然有些情況下U('Blog/read/id/1')和U('Blog/read?id=1')的效果一樣,但是在不同的URL設置情況下,會導致解析的錯誤。
根據項目的不同URL設置,同樣的U方法調用可以智能地對應產生不同的URL地址效果,例如針對U('Blog/read?id=1')這個定義為例。
如果當前URL設置為普通模式的話,最後生成的URL地址是:
HTUhttp://<serverName>/index.php?m=Blog&a=read&id=1UTH
如果當前URL設置為PATHINFO模式的話,同樣的方法最後生成的URL地址是:
HTUhttp://<serverName>/index.php/Blog/read/id/1UTH
如果當前URL設置為REWRITE模式的話,同樣的方法最後生成的URL地址是:
HTUhttp://<serverName>/Blog/read/id/1UTH
如果當前URL設置為REWRITE模式,並且設置了偽靜態後綴為.html的話,同樣的方法最後生成的URL地址是:
HTUhttp://<serverName>/Blog/read/id/1.htmlUTH
此外,U方法還可以支持路由,如果我們定義了一個名稱為View的路由,指向Blog模塊的read操作,參數是id,那麼U('View@?id=1')生成的URL地址是:
HTUhttp://<serverName>/index.php/View/id/1UT
注意:U方法的路由支持 僅支持簡單路由,不支持泛路由和正則路由。