TP6中请求和响应
TP6中请求的使用
一、请求的使用
//1、引入Request对象 use think\facade\Request; //方式1、构造方法注入 protected $request; public function __construct(Request $request) { $this->request = $request; } //方式2、操作方法注入 public function index(Request $request) { return $request->param('name'); } //方式3、静态调用 public function index() { return Request::param('name'); } //方式4、助手函数 public function index() { return request()->param('name'); }
个人推荐使用助手函数方式或者静态调用,比较简单直观
二、请求信息
常用的:
request()->host(); //当前访问域名或者IP request()->domain(); //当前包含协议的域名 request()->url(); //当前完整的url request()->query(); //当前请求的query_string request()->method(); //请求方法 request()->controller(); //当前控制器 request()->action(); //当前操作
三、获取输入变量
// 获取当前请求的所有变量(经过过滤) Request::param(); // 获取当前请求未经过滤的所有变量 Request::param(false); // 获取当前请求的name变量 Request::param('name'); // 获取部分变量 Request::param(['name', 'email']); //判断变量是否存在 Request::has('name','post'); //默认值 Request::get('name'); // 返回值为null Request::get('name',''); // 返回值为空字符串 Request::get('name','default'); // 返回值为default
四、变量过滤
//框架默认没有设置任何全局过滤规则,你可以在app\Request对象中设置filter全局过滤属性: namespace app; class Request extends \think\Request { protected $filter = ['htmlspecialchars']; } // 获取get变量 并用htmlspecialchars函数过滤 Request::get('name','','htmlspecialchars'); // 获取param变量 并用strip_tags函数过滤 Request::param('username','','strip_tags'); // 获取post变量 并用org\Filter类的safeHtml方法过滤 Request::post('name','','org\Filter::safeHtml');
五、助手函数
//判断变量是否定义 input('?get.id'); input('?post.name'); input('?name'); // 获取单个参数 input('name'); // 获取全部参数 input('');
HTTP头信息:
//获取全部头信息 $info = Request::header(); echo $info['accept']; echo $info['accept-encoding']; echo $info['user-agent']; //获取某个头信息 $agent = Request::header('user-agent');
伪静态:
在config/route.php 中设置
// URL伪静态后缀 默认是 html 'url_html_suffix' => 'html', //如果设置为空,则可以支持任意的 后缀 'url_html_suffix'=>'' // 多个伪静态后缀设置 用|分割 'url_html_suffix' => 'html|shtml|xml' // 关闭伪静态后缀访问 'url_html_suffix' => false,
六、响应的使用
各种响应方式:
//响应输出一个字符串 Route::get('hello/:name', function ($name) { return 'Hello,' . $name . '!'; }); 或在控制器中 public function hello($name='thinkphp') { return 'Hello,' . $name . '!'; } //输出json数据 $data = ['name' => 'thinkphp', 'status' => '1']; return json($data); //设置输出的状态码 json($data,201); view($data,401); //设置输出头信息 json($data)->code(201)->header([ 'Cache-control' => 'no-cache,must-revalidate' ]); //重定向 return redirect('http://www.thinkphp.cn'); //重定向使用 url传参 redirect((string) url('hello',['name' => 'think'])); //文件下载 // download是系统封装的一个助手函数 return download('image.jpg', 'my'); //直接下载内容 $data = '这是一个测试文件'; return download($data, 'test.txt', true);
但行好事,莫问前程!
本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/15512812.html