## 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/>