ThinkPHP 5历程(学习中,第二篇)
一、 路由请求
这里我说一下比较常用的方法和内容
1.1 获取路由参数常用的方法
先说一下路由的访问规则;默认是 模块/控制器/操作名称
注意点:我要访问Test5.php下的hello($id)方法
是用:http://www.shopping.cn:8899/api/Test5/hello?id=123
如果是访问 v1/Test1.php 下的hello($id)方法就有点小区别;
要这样访问:http://www.shopping.cn:8899/api/v1.Test1/hello?id=123
介绍完路由的访问规则;接下来进入正题:
1. 默认方法
也就是直接用参数;在 hello() 上直接传一个 id 值 ;然后直接使用 $id 就可以获取了
2. 引入Request模块
先引用Request use think\Request;
可以通过Request对象完成全局输入变量的检测、获取和安全过滤,支持包括 $_GET、 $_POST、 $_REQUEST、 $_SERVER、 $_SESSION、 $_COOKIE、 $_ENV等系统变量,以及文件上传信息。
开发文档上的内容:
变量类型方法包括:
方法 | 描述 |
---|---|
param | 获取当前请求的变量 |
get | 获取 $_GET 变量 |
post | 获取 $_POST 变量 |
put | 获取 PUT 变量 |
delete | 获取 DELETE 变量 |
session | 获取 $_SESSION 变量 |
cookie | 获取 $_COOKIE 变量 |
request | 获取 $_REQUEST 变量 |
server | 获取 $_SERVER 变量 |
env | 获取 $_ENV 变量 |
route | 获取 路由(包括PATHINFO) 变量 |
file | 获取 $_FILES 变量 |
大家对 get 和 post 很熟悉;但是对 put 和 delete 可能会感到陌生;这是源于REST设计风格;大家感兴趣可以去百度搜索一下
URL定位资源,用HTTP动词(GET,POST,DELETE,PUT)描述操作。
GET 获取一个资源
POST 添加一个资源
PUT 修改一个资源
DELETE 删除一个资源
1.常规使用
- 获取URL的所有内容:
$request = Request::instance();
- 获取传过来的所有参数用:
$all=Request::instance()->param();//获取全部参数;
- 如果想获取某个值如id:
$id=Request::instance()->param('id');//获取变量,不区分类型直接获取
- 获取get请求参数用:
$getall=Request::instance()->get();//获取get 的参数
- 获取某个get变量:
$id=Request::instance()->get('id');
- 获取post请求的参数:
$postall=Request::instance()->post();//post 获取post参数
- 获取某个post变量如name:
$name=Request::instance()->post('name');
2.助手函数
param方法会把当前请求类型的参数和PATH_INFO变量以及GET请求合并。
input函数默认就采用PARAM变量读取方式
- 获取URL的所有内容
$request =request();
- 获取传过来的所有参数用:
$all=input('');或者input('param.');//获取全部参数;
- 如果想获取某个值如id:
$id=input('param.id');//获取变量,不区分类型直接获取
- 获取get请求参数用:
$getall=input('get.');//获取get 参数
- 获取get的某个参数如id:
$id=input('get.id');
- 获取post请求的参数:
$postall=Request::instance()->post();//post 获取post参数
- 获取post的某个参数如name:
$name=input('post.name');
我这里只是写了比较常用的;具体的话可以看开发文档;开发手册上写的很全面
总文章篇幅有点长,为了方便阅读就分篇写了
开发手册:https://www.kancloud.cn/manual/thinkphp5/158834
如果有什么不足之处;或者不对的地方可以指出哦!