Thinkphp中的U函數(Thinkphp3.2.3版本)


U函數的作用是根據當前的URL設置生成對應的URL地址,使用U函數可以確保項目在移植過程中不受環境的影響。

U方法的定義規則如下(方括號內參數根據實際應用決定):

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

其中地址表達式的格式定義如下:

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

模塊/控制器如果與當前模塊、控制器相同的話可以省略。

參數值既可以通過'地址表達式'傳遞也可以通過'參數'傳遞,而通過'參數'傳遞時既可以是字符串也可以是數組,所以下面三個URL地址是等效的:

U('blog/read?id=5&stu=0')
U('blog/read','id=5&stu=0')
U('blog/read',array('id=>5','stu=>0'))

但下面的表達式是錯誤的:

U('blog/read/id/5/stu/0')

另外,U函數會自動識別當前URL模式,並按當前URL模式生成URL地址。

實例與說明

假設當前URL地址是 http://www.bnzoo.com/Home/Index/index,現在要訪問 http://www.bnzoo.com/Home/Index/text/id/25/ty/1,U函數表達如下:

//下面三個表達是等效的
U('text?id=25&ty=1')
U('text','id=25&ty=1')
U('text',array('id=>25','ty=>1'))

訪問 http://www.bnzoo.com/Home/Form/text/id/25/ty/1,U函數表達如下:

//下面三個表達是等效的
U('Form/text?id=25&ty=1')
U('Form/text','id=25&ty=1')
U('Form/text',array('id=>25','ty=>1'))

訪問 http://www.bnzoo.com/Admin/Form/text/id/25/ty/1,U函數表達如下:

//下面三個表達是等效的
U('Admin/Form/text?id=25&ty=1')
U('Admin/Form/text','id=25&ty=1')
U('Admin/Form/text',array('id=>25','ty=>1'))

如果www.bnzoo.com和admin.bnzoo.com都指向當前應用的話,想通過 admin.bnzoo.com 訪問 Admin/Form/text/id/25/ty/1,即訪問 http://admin.bnzoo.com/Admin/Form/text/id/25/ty/1,U函數表達如下:

//下面三個表達是等效的
U('Admin/Form/text@admin.bnzoo.com?id=25&ty=1')
U('Admin/Form/text@admin.bnzoo.com','id=25&ty=1')
U('Admin/Form/text@admin.bnzoo.com',array('id=>25','ty=>1'))

 

如果設置了路由,U函數也能支持路由。比如我們定義一個路由規則:

'text/:id\d'=>'Index/text'

U函數下面的表達都是可以的:

U('/text/25')
U('Index/text?id=25')

假設當前地址是 http://www.bnzoo.com/Home/Index/index,那么它們生成的URL地址分別是:

http://www.bnzoo.com/Home/text/25
http://www.bnzoo.com/Home/Index/text/id/25

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM