官术网_书友最值得收藏!

4.6 URL生成

ThinkPHP一個(gè)強(qiáng)大之處在于可以根據(jù)不同的URL模式來生成不同的URL地址,為此ThinkPHP提供了“U”函數(shù),該函數(shù)確保了項(xiàng)目在移植過程中不受運(yùn)行環(huán)境的影響。

U方法定義如下:

   U(地址表達(dá)式,參數(shù),是否顯示偽靜態(tài)后綴,是否顯示域名)

4.6.1 地址表達(dá)式

地址表達(dá)式格式如下:

   [模塊/控制器/操作#錨點(diǎn)@域名]?參數(shù)1=值1&參數(shù)2=值2...

如果沒有指定模塊名,則ThinkPHP使用當(dāng)前模塊名,來看以下例子:

      U('User/add')//生成User控制器的add操作的URL
      U('Blog/read? id=1')//生成Blog控制器的read操作且id為1的URL
      U('Home/Index/index')//生成Home模塊下Index控制器的index操作的URL

4.6.2 參數(shù)

參數(shù)支持?jǐn)?shù)組和查詢字符串形式,所以以下方式是等效的:

● U(‘User/view', array(‘id'=>1, ‘role'=>‘a(chǎn)dmin'))

● U(‘User/view', ‘id=1&role=admin')

4.6.3 偽靜態(tài)后綴

該參數(shù)為true時(shí),系統(tǒng)讀取URL_HTML_SUFFIX配置來生成URL,如果需要臨時(shí)使用新規(guī)則,可以直接加參數(shù)后綴名,例如:

   U('Blog/view', array('id'=>1), 'shtml')

4.6.4 URL模式處理

不同的URL_MODEL會(huì)導(dǎo)致生成不同的URL地址,以U(‘Blog/view', array(‘id'=>1), ‘shtml')為例。

普通模式:

   /index.php? m=Home&c=Blog&a=view&id=1

pathinfo模式:

   /index.php/Home/Blog/view/id/1.shtml

rewrite模式:

   /Home/Blog/view/id/1.shtml

兼容模式:

   /index.php? s=/Home/Blog/view/id/1.shtml

如果“URL_CASE_INSENSITIVE”為“true”, ThinkPHP會(huì)將生成結(jié)果統(tǒng)一轉(zhuǎn)換為小寫。

4.6.5 生成路由地址

假設(shè)定義了以下路由規(guī)則:

   'blog/:id\d'=>'Blog/read'

那么可以使用U(‘/blog/1')來生成/index.php/Home/blog/1.shtml。

主站蜘蛛池模板: 荣成市| 长垣县| 玛沁县| 应用必备| 门头沟区| 确山县| 高密市| 和龙市| 武冈市| 丰县| 铁岭县| 云南省| 五莲县| 遵义县| 阿克陶县| 文水县| 淄博市| 子洲县| 论坛| 安图县| 濮阳县| 渭南市| 合水县| 墨江| 若尔盖县| 呼图壁县| 新源县| 安新县| 泗洪县| 台北市| 新郑市| 临武县| 炎陵县| 象州县| 宜兰市| 大石桥市| 建德市| 辽宁省| 大丰市| 呼图壁县| 翁源县|