首页 >社区问答列表 >ThinkPhp 5.1 关于控制器参数 _GET,以及get(),param() 方法

ThinkPhp 5.1 关于控制器参数 _GET,以及get(),param() 方法

使用 URL: http://www.tp51.com/index/Demo/test/name=peter&sex=male

class Demo extends Controller

{

    public function test()

    {

        dump((new Request())->get());   //等价于 dump($_GET);

输出:   

'/index/Demo3/test1/name' => string 'peter' (length=5)

'sex' => string 'male' (length=4)

       

        dump((new Request())->param('/index/Demo3/test1/name'));  // peter

        dump((new Request())->param('name'));       //null

        dump((new Request())->param('sex'));           //male

    }

另外,同样的代码,使用下面的方式访问:

URL: http://www.tp51.com/index/Demo/test?name=peter&sex=male

复制代码

输出:

array (size=3)

  '/index/Demo/test' => string '' (length=0)

  'name' => string 'peter' (length=5)

  'sex' => string 'male' (length=4)

param()方法则输出正确。 


请老师和各位大侠帮忙指导一下,那地方参数设置有问题还是代码有问题 ?
谢谢!


还有,Thinkphp URL 传参通过 / 或 ? 的问题请指导。
万分感谢!

另外,我没有改过PHP5.1的核心模块和配置文件信息。

  • 代码输入中...
  • 代码输入中...    2018-08-02 22:05:431楼

    你这链接有问题吧,http://www.tp51.com/index/Demo/test/name=peter&sex=male, &符号前面不是得先用 ?,后面才能&拼接着带参数的吗

    +0添加回复

  • 回复

    大侠,两种方式我都用了,THINKPHP推荐使用 / 代替 ? 。使用 / 方式的话 request info就带上了前面的 控制器、模块名、方法 URL: http://www.tp51.com/index/Demo/test/name=peter&sex=male 使用 ? 方式的话 那么 控制器、模块名、方法 就会成为 request info 参数的第一个参数。 URL: http://www.tp51.com/index/Demo/test?name=peter&sex=male 不知道是那个地方有问题,是否配置问题呢 ? 看了半天 config/app.php 相关url 的配置也没有找到原因。 请大侠不吝赐教啊! 拜托!

    麦爸  作者 · 2018-08-03 06:06:09
    回复