php this request,控制器中Request类的使用

## 控制器中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();

~~~

更详尽的参照完全开发手册吧

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值