zoukankan      html  css  js  c++  java
  • TP6中请求和响应

    TP6中请求的使用

    一、请求的使用

    //1、引入Request对象
    use thinkfacadeRequest;
    //方式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

    四、变量过滤

    //框架默认没有设置任何全局过滤规则,你可以在appRequest对象中设置filter全局过滤属性:
    namespace app;
    class Request extends 	hinkRequest
    {
        protected $filter = ['htmlspecialchars'];
    }
    
    // 获取get变量 并用htmlspecialchars函数过滤
    Request::get('name','','htmlspecialchars'); 
    // 获取param变量 并用strip_tags函数过滤
    Request::param('username','','strip_tags'); 
    // 获取post变量 并用orgFilter类的safeHtml方法过滤
    Request::post('name','','orgFilter::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

  • 相关阅读:
    3-1
    3-2
    习题二 8
    习题二 3
    习题二 5
    习题二 4
    习题二 6
    实验三-2未完成
    实验三
    心得
  • 原文地址:https://www.cnblogs.com/ypeih/p/15512812.html
Copyright © 2011-2022 走看看