ThinkPHP函式詳解 U方法

2022-08-01 04:27:15 字數 2573 閱讀 4106

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

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

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

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

複製**

也可以支援分組呼叫:

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')複製**

u('blog/read?id=1')複製**

http://servername/index.php?m=blog&a=read&id=1複製**

http://servername/index.php/blog/read/id/1複製**

http://servername/blog/read/id/1複製**

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

'url_pathinfo_depr'=>'_'複製**

就會生成

http://servername/blog_read_id_1複製**

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')複製**

http://servername/index.php/news/1複製**

網域名稱支援如果你的應用涉及到多個子網域名稱的操作位址,那麼也可以在u方法裡面指定需要生成位址的網域名稱,例如:u('blog/[email protected]','id=1');

複製**

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

ThinkPHP函式詳解 U方法

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

ThinkPHP函式詳解 A方法

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