TP5的请求对象与数据绑定.md

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中没有写明变量值,在返回值中就不会显示默认值

你可能感兴趣的:(TP5的请求对象与数据绑定.md)