## URL生成
框架提供了U()方法去根據控制器名和方法名生成對應的URL。
~~~
方法:U('Index/index/cid/1/id/10');
輸出:/index.php/Index/index/cid/1/id/10
~~~
可能你覺得這樣跟直接寫URL區別并不是很大。但是還有一種情況就是你的框架在子目錄下,并不是直接從網站根目錄運行的。
~~~
例如:你的網站在/admin/order/下,你運行/admin/order/index.php時
方法:U('Index/index/cid/1/id/10');
輸出:/admin/order/index.php/Index/index/cid/1/id/10
~~~
如果您說這樣其實區別也不是非常大,那么在子目錄運行框架時候,還有一種情況,可能會讓你抓狂。就是根據業務需要你這個子目錄需要改名,不能在/admin/order/下了,需要改到/admin/dingdan/下。如果沒有使用U()方法,你就需要將所有文件中的order替換為dingdan,如果碰到一些特殊寫法可能會換不干凈,或者換掉其他單詞中的order導致程序出錯。
此時如果使用了U()方法,方法內部會自動將index.php之前的路徑并輸出當前的路徑名。
~~~
路徑:/admin/order/
方法:U('Index/index/cid/1/id/10');
輸出:/admin/order/index.php/Index/index/cid/1/id/10
~~~
~~~
路徑:/admin/dingdan/
方法:U('Index/index/cid/1/id/10');
輸出:/admin/dingdan/index.php/Index/index/cid/1/id/10
~~~
<br/><br/>
> **高階提示:** 如果你想輸出參數形式的URL那么可以CONF('URLREWRITE',false);動態的將URL模式改為參數形式,然后緊接著使用U()方法,就可以獲得/index.php?c=Index&a=index&cid=1&id=10這種形式的URL了。
<br/><br/>