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

  • ThinkPHP實戰
  • 夏磊
  • 440字
  • 2020-11-28 18:26:54

4.6 URL生成

ThinkPHP一個強大之處在于可以根據不同的URL模式來生成不同的URL地址,為此ThinkPHP提供了“U”函數,該函數確保了項目在移植過程中不受運行環境的影響。

U方法定義如下:

   U(地址表達式,參數,是否顯示偽靜態后綴,是否顯示域名)

4.6.1 地址表達式

地址表達式格式如下:

   [模塊/控制器/操作#錨點@域名]?參數1=值1&參數2=值2...

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

      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 參數

參數支持數組和查詢字符串形式,所以以下方式是等效的:

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

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

4.6.3 偽靜態后綴

該參數為true時,系統讀取URL_HTML_SUFFIX配置來生成URL,如果需要臨時使用新規則,可以直接加參數后綴名,例如:

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

4.6.4 URL模式處理

不同的URL_MODEL會導致生成不同的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會將生成結果統一轉換為小寫。

4.6.5 生成路由地址

假設定義了以下路由規則:

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

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

主站蜘蛛池模板: 页游| 海丰县| 华池县| 盐亭县| 石泉县| 常州市| 乌兰察布市| 丰都县| 娄底市| 南平市| 呼伦贝尔市| 舒兰市| 通河县| 南皮县| 原平市| 盐津县| 宜黄县| 崇明县| 定陶县| 临漳县| 织金县| 山东省| 巍山| 邵阳县| 孝义市| 保康县| 天镇县| 梅河口市| 开封市| 年辖:市辖区| 桂阳县| 博乐市| 吉安县| 西峡县| 安徽省| 卫辉市| 绥宁县| 南平市| 启东市| 蒙城县| 株洲市|