1、请求变量与请求对象的关系?
public function hello($name, $lesson)
{
return 'hello,欢迎来到'.$name.'学习'.$lesson.'开发技术~~~';
}
url为:
tp5.com/index/index/hello/name/php中文网/lesson/thinkphp5
其中,name和lesson就是请求变量。
请求变量就是请求对象处理的一个目标。
如何用请求对象处理这些请求变量呢?
public function demo($id='',$name='',$age=18)
{
$request = \think\Request::instance();
dump($request->get());
}
url中:
tp5.com/index/index/demo/?id=1001&name=peter&age=28
就可以在网页得到:
array(3){
["id"] => string(4) "1001"
["name"] => string(5) "peter"
["age"] => string(2) "28"
}
dump($request->param()); //param()具有get()和post()的功能
dump($request->param('age')); //只返回string(2) "28"
dump($request->has('age')); //只返回bool(true),即url中是否存在age变量
2、请求信息包括哪些?
dump($request->domain()); //获取当前域名
dump($request->url()); //返回的url是不包括域名的,为"/index/index/demo/id/1001/name/peter/age/28"
dump($request->url(true)); //此时返回的url为"http://tp5.com/index/index/demo/id/1001/name/peter/age/28"
dump($request->pathinfo()); //返回pathinfo且包括后缀
dump($request->path()); //返回pathinfo且不包括后缀
dump($request->ext()); //只返回后缀
dump($request->module()); //返回当前的模块
dump($request->controller()); //返回当前的控制器
dump($request->action()); //返回当前的操作
dump($request->method()); //返回请求方式,"GET"或"POST"
dump($request->ip()); //返回ip地址"127.0.0.1"
dump($request->only('id')); //只返回id
dump($request->except('id')); //只返回name和age
$request->action('test'); //把操作改为test
dump($request->action()); //再次返回方法值,变为了"test"
3、如何通过参数绑定来简化请求的URL地址?
在惯例配置文件convention.php中更改url_param_type的值为1,或者复制到自定义配置文件中。
dump($request->param());只能获取url中的变量,不能获取变量定义的默认值,所以如果url中没有写明变量值,在返回值中就不会显示默认值
网友评论