tp5获取请求参数

1.问题:照着tp5快速入门手册里学习,运行一段代码和书中的结果(资源类型)不同
2.相关代码:

public function hello(Request $request){
        echo '请求参数';
        dump(input());
        echo 'name:' .$request->param('name');
        echo '资源类型:' .$request->type(). '<br/>';
}

访问路径为:
tp5.com/index/index/hello/test/ddd.html?name=think
书中的结果:资源类型:html,
我运行的结果是:资源类型:xml,
问题出在哪???

还有一个问题,如果把访问路径改成tp5.com/index/index/hello/test/ddd.html/name/think
请求参数结果也变了,
原来路径访问结果:
array(2) {
["name"] => string(5) "think"
["test"] => string(3) "ddd"
}
后来的路径结果:
array(2) {
["test"] => string(8) "ddd.html"
["name"] => string(5) "think"
}
怎么理解tp5.com/index/index/hello/test/ddd.html?name=think这个路径写法?

阅读 9.2k
2 个回答

tp5.com/index/index/hello/test/ddd.html?name=think
这种写法,?后边的是直接通过$_GET获取的,
?前面的是框架通过pathinfo解析出来的。

tp5.com/index/index/hello/test/ddd.html/name/think
这个url中没有?则效果与:
tp5.com/index/index/hello/test/ddd.html/name/think.html
是一样的,也就是说最的珠.html可以省略。
前面的/除了默认的模块,控制器与操作之外 ,通过key/value的方式来解析,
所以,test/ddd.html
就解析成["test"] => string(3) "ddd" 了。

看不懂题目,但是

如果把访问路径改成tp5.com/index/index/hello/test/ddd.html/name/think

这句是错的吧,应该是

tp5.com/index/index/hello/test/ddd/name/think.html

返回结果是一样的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题