七、Request请求类
1、获取输入变量
(见手册–请求–输入变量)
要获取当前的请求信息,可以使用\think\Request类
$request = \think\Request::instance();
或者使用助手函数
$request = request();
也可以单独获取get变量或者post变量
Request::instance()->get();
Request::instance()->post();
input('get.');
input('post.');
代码示例:
浏览器访问效果:
特殊说明:路由变量与get变量
http://www.tpshop.com/home/test/index/id/100?page=10
param方法 能够获取所有参数(id, page)
get方法 只能获取?后面的请求字符串的参数(page)
route方法 只能获取到?前面的路由中的参数(id)
2、参数绑定
(见手册–请求–参数绑定)
方法参数绑定是把URL地址(或者路由地址)中的变量作为操作方法的参数直接传入。
使用示例:home模块Test控制器read方法中,声明$id参数
访问url中,传递id参数 http://www.tpshop.com/home/test/read/id/100
效果:
3、依赖注入
(见手册–请求–依赖注入)
依赖注入:简单的说,要在一个类A中使用另一个依赖类B时,不直接在类A中实例化类B,而是先实例化类B后再以参数的形式传入类A.
框架中的使用:
原理分析:
补充说明:Request请求类中,封装了很多和请求相关的方法,详情见手册–请求(多看)
小结:
可以找到任何一种方法 接收请求参数
//1.获取请求对象
$request = request();
$request = \think\Request::instance();
$request = $this->request; //仅限于继承了底层控制器的情况下
public function save(Request $request) //依赖注入
//2. 接收请求参数 param方法
$params = $request->param();
$params = input();
$params = request()->param();
$id = $request->param('id');
$id = input('id');
public function edit($id)//参数绑定