ThinkPHP URL僞靜態和U方法的使用

首先, 在配置文件(config.php)裏設置 URL_HTML_SUFFIX 設置靜態後綴
<?php

return array(

'URL_HTML_SUFFIX'=>'.html',  //隨意, 可設置其它的。

....

//其它配置信息

);

?>

來看下手冊U方法的定義規則

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地址是: 

http://<serverName>/index.php?m=Blog&a=read&id=1 

如果當前URL設置爲PATHINFO模式的話,同樣的方法最後生成的URL地址是: 

http://<serverName>/index.php/Blog/read/id/1 

如果當前URL設置爲REWRITE模式的話,同樣的方法最後生成的URL地址是: 

http://<serverName>/Blog/read/id/1 

如果當前URL設置爲REWRITE模式,並且設置了僞靜態後綴爲.html的話,同樣的方法最後生成的URL地址是: 

http://<serverName>/Blog/read/id/1.html 

U方法還可以支持路由,如果我們定義了一個名稱爲View的路由,指向Blog模塊的read操作
參數是id,那麼U('View@?id=1')生成的URL地址是:

http://<serverName>/index.php/View/id/1

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章