thinkPHP 中对无参URL路由

本文主要是在 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路由,因此使用了一种投机取巧的方法,利用有参函数来实现对原本无参函数的调用,各位大佬有了解的可以帮忙指点迷津,不胜感谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值