本节课我们来学习一下数据请求的两个功能:请求对象和请求信息。
一.请求对象
1. 使用构造方法注入请求,如下:
namespace app\controller;
use think\Request;
class Rely
{
protected $request;
public function __construct(Request $request)
{
$this->request = $request;
}
public function index()
{
return $this->request->param('username');
}
}
2. Request 请求对象拥有一个 param 方法,传入参数 username,可以得到相应的值;
3. 也可以在普通方法下直接使用,如下:
use think\Request;
class Rely
{
public function index(Request $request)
{
return $request->param('username');
}
}
4. 使用 Facade 方式应用于没有进行依赖注入时使用 Request 对象的场合;
use think\facade\Request;
class Rely
{
public function index()
{
return Request::param('username');
}
}
5. 使用助手函数 request()方法也可以应用在没有依赖注入的场合;
class Rely
{
public function index()
{
return request()->param('username');
}
}
二.请求信息
1. Request 对象除了 param 方法外,还有一些请求的固定信息,如表:
2. 上表的调用方法,直接调用即可,无须传入值,只有极个别如果传入 true 获取完
整 URL 的功能;
Request::url();
// 获取完整 URL 地址 包含域名
Request::url(true);
// 获取当前 URL(不含 QUERY_STRING) 不带域名
Request::baseFile();
// 获取当前 URL(不含 QUERY_STRING) 包含域名
Request::baseFile(true);
// 获取 URL 访问根地址 不带域名
Request::root();
// 获取 URL 访问根地址 包含域名
Request::root(true);
3. 还可以获取当前控制器和操作方法的名称:::controller()和::action();
return Request::controller().'|'.Request::action();