ThinkPHP6获取参数的方法有多种,初学者可能知道其中的一种,然后在看到其他人代码的时候又换了个写法,可能会一脸懵逼,下面就给大家总结一下ThinkPHP6中获取参数的方法。
假设我们有以下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 thinkfacadeRequest;
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()等等,具体的方法如下图:
注意:method方法返回的请求类型始终是大写的,并且这些方法都不需要传入任何参数。
以上就是ThinkPHP6中获取参数的三种方式,以及一些相关的请求类型,可能还不是很全,但是掌握这些基本能满足大部分情形下的参数获取,如果想了解更多相关内容,请移步ThinkPHP官网查看相关文档。