• ThinkPHP5.0中Request请求对象的使用和常用的操作


    request的使用

    第一种方法

    在控制器头部添加request引用

    这里写图片描述

    然后在方法里调用 ‘instance’类

    这里写图片描述

    然后在调用方法:
    这里写图片描述

    public function index($name='name')
        {
            $request = Request::instance();
    
            echo '请求方法:'.$request->method() . '<br/>';
    
            echo '资源类型:'.$request->type() . '<br/>';
    
            echo '访问ip:'.$request->ip() . '<br/>';
    
            echo '是否为ajax请求:'.var_export($request->isAjax(), true) . '<br/>';
    
            echo '请求参数:';
            dump($request->param());
    
            echo '请求参数:仅包含name';
            dump($request->only(['name']));
    
            echo '请求参数:排除name';
            dump($request->except(['name']));
    
            echo '资源类型:'.$request->type() . '<br/>';
            echo '<br/>操作:'.$request->action();
            echo '获取当前域名:'.$request->domain() . '<br/>';
    
            // 获取当前入口文件
            echo '获取当前入口文件:'.$request->baseFile() . '<br/>';
    
            // 获取当前URL地址,不含域名
            echo '获取当前URL地址,不含域名:'.$request->url() . '<br/>';
    
            // 获取包含域名的完整url地址
            echo '获取包含域名的完整url地址:'.$request->url(true) . '<br/>';
    
            // 获取URL地址 不含QUERY_STRING
            echo '获取URL地址 不含QUERY_STRING:'.$request->baseurl() . '<br/>';
    
            // 获取URL访问的ROOT地址
            echo '获取URL访问的ROOT地址:'.$request->root() . '<br/>';
    
            // 获取URL访问的ROOT地址
            echo '获取URL访问的ROOT地址 :'.$request->root(true) . '<br/>';
    
            // 获取URL地址中的 PATH_INFO 信息
            echo '获取URL地址中的 PATH_INFO 信息:'.$request->pathinfo() . '<br/>';
    
            // 获取URL地址中的 PATH_INFO 信息,不含后缀
            echo '获取URL地址中的 PATH_INFO 信息,不含后缀:'.$request->path() . '<br/>';
    
            // 获取URL地址中的后缀信息
            echo '获取URL地址中的后缀信息:'.$request->ext() . '<br/>';
          Session::set('name','thinkphp');
          Cookie::set('name','thinkphp2');
            dump($request->route());
            dump($request->dispatch());
            echo Session::get('name');
    
    
        }

    结果是:

    这里写图片描述

    因为屏幕不够大所以还有一部分没有截图上来,但是大家只要知道怎么使用就可以了。

    第二种方法

    这个方法比较简单但是也稍微有点麻烦,他只要引用Controller类然后继承它就可以调用不用在像上面一样还要先引用request然后还要在方法里调用$request = Request::instance(); 然后才可以使用。

    引用Controller这个和上面引用request是一样的
    use thinkController

    这里写图片描述

    然后在控制器里继承controller

    这里写图片描述

    最后调用 ‘request’
    是不是比方法一稍微麻烦? 每次调用的时候都需要在前面加$this->request

    这里写图片描述

    整体代码是:

      public function test(){
    // 获取当前域名
            echo 'domain: ' . $this->request->domain() . '<br/>';
    // 获取当前入口文件
            echo 'file: ' . $this->request->baseFile() . '<br/>';
    // 获取当前URL地址 不含域名
            echo 'url: ' . $this->request->url() . '<br/>';
    // 获取包含域名的完整URL地址
            echo 'url with domain: ' . $this->request->url(true) . '<br/>';
    // 获取当前URL地址 不含QUERY_STRING
            echo 'url without query: ' . $this->request->baseUrl() . '<br/>';
    // 获取URL访问的ROOT地址
            echo 'root:' . $this->request->root() . '<br/>';
    // 获取URL访问的ROOT地址
            echo 'root with domain: ' . $this->request->root(true) . '<br/>';
    // 获取URL地址中的PATH_INFO信息
            echo 'pathinfo: ' . $this->request->pathinfo() . '<br/>';
    // 获取URL地址中的PATH_INFO信息 不含后缀
            echo 'pathinfo: ' . $this->request->path() . '<br/>';
    // 获取URL地址中的后缀信息
            echo 'ext: ' . $this->request->ext() . '<br/>';
    
            echo "当前模块名称是" . $this->request->module();
            echo "当前控制器名称是" . $this->request->controller();
            echo "当前操作名称是" . $this->request->action();
            echo '请求方法:' . $this->request->method() . '<br/>';
            echo '资源类型:' . $this->request->type() . '<br/>';
            echo '访问ip地址:' . $this->request->ip() . '<br/>';
            echo '是否AJax请求:' . var_export($this->request->isAjax(), true) . '<br/>';
            echo '请求参数:';
            dump($this->request->param());
            echo '请求参数:仅包含name';
            dump($this->request->only(['name']));
            echo '请求参数:排除name';
            dump($this->request->except(['name']));
        }

    最后的结果图:
    这里写图片描述

  • 相关阅读:
    CF1036C Solution
    CF1041E Solution
    CF1043E Solution
    CF1054D Solution
    CF1032D Solution
    题解 P6194 【[EER1]苏联人】
    题解 CF1324A 【Yet Another Tetris Problem】
    题解 CF1325A 【EhAb AnD gCd】
    题解 CF1325B 【CopyCopyCopyCopyCopy】
    题解 AT5805 【Bishop】
  • 原文地址:https://www.cnblogs.com/beili/p/9447852.html
Copyright © 2020-2023  润新知