ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 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/>