1. 程式人生 > >ThinkPHP5.0中Request請求對象的使用和常用的操作

ThinkPHP5.0中Request請求對象的使用和常用的操作

Language tty tex echo mod ins 類型 使用 use

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 think\Controller

技術分享圖片

然後在控制器裏繼承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‘]));
    }

最後的結果圖:
技術分享圖片

ThinkPHP5.0中Request請求對象的使用和常用的操作