## 控制器中Request类的使用 我们先看一下TP5控制器的构造函数源码 ~~~ /** * 构造方法 * @param Request $request Request对象 * @access public */ public function __construct(Request $request = null) { if (is_null($request)) { $request = Request::instance(); } $this->view = View::instance(Config::get('template'), Config::get('view_replace_str')); $this->request = $request; // 控制器初始化 $this->_initialize(); // 前置操作方法 if ($this->beforeActionList) { foreach ($this->beforeActionList as $method => $options) { is_numeric($method) ? $this->beforeAction($options) : $this->beforeAction($method, $options); } } } ~~~ 我们可以看出,在控制器类初始化时候注入了 Request 类,并将 Request 类赋值到 $this->request , > 完全开发手册中也有提到,继承系统控制器类可以直接调用 Request 类 OK,那我们就直接来看看 Request 类如果在控制器的使用 > 题外话我们要改掉使用助手函数的习惯,(包括我自己,以前的代码中也是有些助手函数,我们一起改正吧),特别是 Request 类助手函数重复使用率非常高, 另:request类详细说明请参见 完全开发手册 http://www.kancloud.cn/manual/thinkphp5/118042 那么,在控制器中然后快速获取各类参数值呢? 我自己写例子了 ~~~ //获取所有get值 $this->request->get(); //获取指定name名称的get值 $this->request->get('name'); //获取所有post值 $this->request->post(); //获取指定name名称的post值 $this->request->post('name'); //获取所有参数值(get post都可以) $this->request->param(); //获取指定name名称的参数值(get post都可以) $this->request->param('name'); ~~~ > Request 类的值很多,可能常用的就是get post,其实用Request 类还可以获取服务器变量 session cookie > 变量类型方法包括: > | 方法 | 描述 | > | --- | --- | > | param | 获取当前请求的变量 | > | get | 获取 $_GET 变量 | > | post | 获取 $_POST 变量 | > | put | 获取 PUT 变量 | > | delete | 获取 DELETE 变量 | > | session | 获取 $_SESSION 变量 | > | cookie | 获取 $_COOKIE 变量 | > | request | 获取 $_REQUEST 变量 | > | server | 获取 $_SERVER 变量 | > | env | 获取 $_ENV 变量 | > | route | 获取 路由(包括PATHINFO) 变量 | > | file | 获取 $_FILES 变量| 还有,我们也经常使用request类判断 请求类型 ~~~ $this->request->isGet(); $this->request->isPost(); $this->request->isAjax(); ~~~ 更详尽的参照完全开发手册吧