假设我们有以下4种要求URL:
① http://localhost/index/index/user/id/1.html
② http://localhost/index/index/user?id=1
(图片来自网络侵删)③ http://localhost/index/index/user?name=admin
④ http://localhost/index/index/user?name=111admin222
一、利用助手函数,这是最大略直接的:
var_dump(input('id')); // ①、②链接都是1,③、④都是NULL
二、利用依赖注入
$this->request->param(); // 该方法返回所有的参数,返回值是一个数组$this->request->param('id'); // 获取指定参数的值$this->request->get('id'); // 只对②链接生效,获取id的值$this->request->param('id', 1, 'intval'); // 吸收参数id的值并转成整型,结果为1
三、利用门面模式的静态方法获取把稳:利用该方法之前须要先引入:use think\facade\Request;
Request::param(); // 获取当前要求的所有变量Request::param('name'); // 获取要求的name值,返回字符串,如果没有传值,则返回nullRequest::param(['name', 'email']); // 获取多个参数值
个中,还有has方法可以检测变量是否已经设置,如:
Request::has('id', 'get');Request::has('name', 'post'); // 检测是否有POST方法通报的name值,有的话返回true,反之为false。
变量检测可以支持所有支持的系统变量,包括get/post/put/request/cookie/server/session/env/file
以上三种方法是TP6获取参数的归纳总结,在很多情形下,我们须要判断当前操作的要求类型是哪一种,如:GET、POST、PUT、DELETE或者是HEAD等等,同时不仅须要针对不同的要求类型做出相应的逻辑处理,更要兼顾安全性的验证,过滤造孽要求,TP6框架供应了要求工具Request类的多种方法来获取、判断当前要求类型,例如,判断一个要求是否为POST要求,我们可以这样做:
if($request->isPost()) { // TODO}
类似的环境还有$request->isGet()、$request->isPut()、$request->isAjax()等等,详细的方法如下图:
要求工具Request类供应的方法
把稳:method方法返回的要求类型始终是大写的,并且这些方法都不须要传入任何参数。
以上便是ThinkPHP6中获取参数的三种办法,以及一些干系的要求类型,可能还不是很全,但是节制这些基本能知足大部分环境下的参数获取,如果想理解更多干系内容,请移步ThinkPHP官网查看干系文档。