- ThinkPHP實(shí)戰(zhàn)
- 夏磊
- 440字
- 2020-11-28 18:26:54
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。
推薦閱讀
- GAE編程指南
- C# 2012程序設(shè)計(jì)實(shí)踐教程 (清華電腦學(xué)堂)
- 樂學(xué)Web編程:網(wǎng)站制作不神秘
- Django開發(fā)從入門到實(shí)踐
- 基于Swift語言的iOS App 商業(yè)實(shí)戰(zhàn)教程
- INSTANT Django 1.5 Application Development Starter
- TradeStation交易應(yīng)用實(shí)踐:量化方法構(gòu)建贏家策略(原書第2版)
- Learning Data Mining with R
- Python機(jī)器學(xué)習(xí)算法: 原理、實(shí)現(xiàn)與案例
- 匯編語言編程基礎(chǔ):基于LoongArch
- 深入理解C指針
- R Data Science Essentials
- PhoneGap 4 Mobile Application Development Cookbook
- Clojure High Performance Programming(Second Edition)
- Learning Unreal Engine Game Development