ThinkPHP函式詳解 U方法

2021-07-13 03:03:00 字數 2763 閱讀 8765

u方法用於完成對url位址的組裝,特點在於可以自動根據當前的url模式和設定生成對應的url位址,格式為:

u('位址','引數','偽靜態','是否跳轉','顯示網域名稱');

在模板中使用u方法而不是固定寫死url位址的好處在於,一旦你的環境變化或者引數設定改變,你不需要更改模板中的任何**。

在模板中的呼叫格式需要採用 

的方式u方法的用法示例:u

('user/add'

)// 生成user模組的add操作位址

複製**

也可以支援分組呼叫:u

('home/user/add'

)// 生成home分組的user模組的add操作位址

複製**

當然,也可以只是寫操作名,表示呼叫當前模組的u

('add'

)// 生成當前訪問模組的add操作位址

複製**

除了分組、模組和操作名之外,我們也可以傳入一些引數:u

('blog/read?id=1'

)// 生成blog模組的read操作 並且id為1的url位址

複製**

u方法的第二個引數支援傳入引數,支援陣列和字串兩種定義方式,如果只是字串方式的引數可以在第乙個引數中定義,下面幾種方式都是等效的:u

('blog/cate'

,array

('cate_id'

=>1,

'status'

=>1))

u('blog/cate'

,'cate_id=1&status=1')u

('blog/cate?cate_id=1&status=1'

)複製**

但是不允許使用下面的定義方式來傳引數:u

('blog/cate/cate_id/1/status/1'

)複製**

根據專案的不同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

複製**

如果你同時還設定了pathinfo分隔符的話:'url_pathinfo_depr'

=>

'_'複製**

就會生成http

://servername/blog_read_id_1

複製**

如果當前url設定為rewrite模式,並且設定了偽靜態字尾為html的話,同樣的方法最後生成的url位址是:http

://servername/blog/read/id/1.html

複製**

如果設定了多個偽靜態支援,那麼會自動取第乙個偽靜態字尾新增到url位址後面,當然你也可以手動在u方法裡面指定要生成的偽靜態字尾,例如:u

('blog/read'

,'id=1'

,'xml'

)複製**

就會生成http

://servername/blog/read/id/1.xml

複製**

u方法還可以支援路由,如果我們定義了乙個路由規則為:'news/:id\d'

=>

'news/read'

複製**

那麼可以使用u

('/news/1'

)複製**

最終生成的url位址是:http

://servername/index.php/news/1

複製**

如果你的應用涉及到多個子網域名稱的操作位址,那麼也可以在u方法裡面指定需要生成位址的網域名稱,例如:u

('blog/[email protected]'

,'id=1'

);複製**

@後面傳入需要指定的網域名稱即可。

如果開啟了url_case_insensitive,則會統一生成小寫的url位址。3.1.2版本開始,u方法還可以支援生成url位址中的錨點,例如:u

('blog/read#comment'

,'id=1'

,'html'

)複製**

就會生成http

://servername/blog/read/id/1.html#comment

複製**

如果網域名稱和錨點同時使用的話,注意順序為先錨點後網域名稱,例如:u

('blog/read#comment@blog'

,'id=1'

);複製**

ThinkPHP函式詳解 U方法

u 位址 引數 偽靜態 是否跳轉 顯示網域名稱 在模板中使用u方法而不是固定寫死url位址的好處在於,一旦你的環境變化或者引數設定改變,你不需要更改模板中的任何 在模板中的呼叫格式需要採用的方式 u方法的用法示例 u user add 生成user模組的add操作位址 複製 也可以支援分組呼叫 u ...

ThinkPHP函式詳解 U方法

u方法用於完成對url位址的組裝,特點在於可以自動根據當前的url模式和設定生成對應的url位址,格式為 u 位址 引數 偽靜態 是否跳轉 顯示網域名稱 在模板中使用u方法而不是固定寫死url位址的好處在於,一旦你的環境變化或者引數設定改變,你不需要更改模板中的任何 在模板中的呼叫格式需要採用的方式...

ThinkPHP函式詳解 A方法

a方法用於在內部例項化控制器,呼叫格式 a 專案 分組 模組 控制器層名稱 最簡單的用法 user a user 複製 表示例項化當前專案的useraction控制器 這個控制器對應的檔案位於lib action useraction.class.php 如果採用了分組模式,並且要例項化另外乙個ad...