本文主要是在 thinkPHP 中对无参URL路由
原本的链接: localhost/oil2.1/index.php/SecondPage/GetProbe
该URL的本意是调用SecondPage控制器的GetProbe函数,此函数无参。
简化后的链接:localhost/oil2.1/ThirdParty/GetProbe
该URL主要是隐藏index.php,并将原来的SecondPage改为ThirdParty
原本的GetProbe函数是无参的,仿照有参函数? ?ThinkPHP URL 路由功能详解与实例_ThinkPHP 3.0/3.1 教程 - 我爱开发网? 中的URL路由方式,在config.php中添加如下代码,发现URL调用不成功。
'URL_ROUTE_RULES'=> array(
'ThirdParty'=>'SecondPage/GetProbe', //规则路由
),
因此,利用有参的方式完成原本无参函数的调用,即将原本无参函数改为有参函数
1. 隐藏index.php
参考ThinkPHP伪静态规则(Apache、IIS 、Nginx ) - 付杰博客? 此处不再赘述
2. 修改SecondPage
在项目配置文件 Conf/config.php 里面开启路由功能(设置为 true):
'URL_ROUTER_ON' => true,
在?config.php 内对路由规则进行定义:
'URL_ROUTE_RULES'=> array(
'ThirdParty/:id'=>'SecondPage/GetProbe', //规则路由
),
在GetProbe函数中,加入如下内容:
public function GetProbe($id=1)
{
if($id!="GetProbe") //将GetProbe作为字符串,如果传入的参数不是GetPro,就返回error
{
$this->ajaxReturn(array('info' => 'error'));
}
//GetProbe中的其他内容此处不在续写
}
添加完成后,localhost/oil2.1/ThirdParty/GetProbe会调用成功,但是此处的GetProbe不是函数名,而是作为参数传入的。
由于查阅资料发现还是不能直接对无参URL路由,因此使用了一种投机取巧的方法,利用有参函数来实现对原本无参函数的调用,各位大佬有了解的可以帮忙指点迷津,不胜感谢!
|