TP 5要求取得パラメータ


リクエストパラメータを取得するいくつかの方法
  • は、think\Controllerのベースクラスを継承することにより、コントローラにおいて$this->request
  • を直接使用する.
      namespace app\index\controller;
      
      use think\Controller;
      
      class Index extends Controller
      {
          public function index()
          {
              $params = $this->request->param();
              return json($params);
          }
      }
    
  • は、構造関数により
  • に注入する.
      namespace app\index\controller;
      
      use think\Request;
      
      class Index
      {
          protected $request;
      
          public function __construct(Request $request)
          {
              $this->request = $request;
          }
          public function index()
          {
              $params = $this->request->param();
              return json($params);
          }
      }
    
  • 操作方法により
  • に注入する.
    namespace app\index\controller;
    
    use think\Request;
    
    class Index
    {
        public function index(Request $request)
        {
            $params = $request->param();
            return json($params);
        }
    }
    
  • 方法により
  • を実例化する.
    namespace app\index\controller;
    
    use think\Request;
    
    class Index
    {
        public function index()
        {
            $request = Request::instance();
            $params = $request->param();
            return json($params);
        }
    }
    

    リクエスト情報の取得
  • URL情報
  • を取得する.
    方法
    さぎょう
    domain
    現在のドメイン名の取得
    baseFile
    現在のエントリファイルの取得
    url
    ドメイン名なしの現在のURLアドレスの取得
    url(true)
    ドメイン名を含む完全なURLアドレスの取得
    baseUrl
    現在のURLアドレスにQUERYが含まれていないことを取得します.STRING
    root
    URLアクセスのROOTアドレスを取得
    root(true)
    URLアクセスのROOTアドレスを取得
    pathinfo
    URLアドレスのPATH_を取得INFO情報
    path
    URLアドレスのPATH_を取得INFO情報、接尾辞なし
    ext
    URLアドレスの接尾辞情報の取得
  • モジュール/コントローラ/操作名
  • を取得する.
    方法
    さぎょう
    model()
    モジュール
    controller()
    せいぎょそうち
    action()
    操作方法
  • 取得要求変数
  • 変数タイプメソッド(‘変数名/変数修飾子’,‘デフォルト値’,‘フィルタメソッド’)
    方法
    説明
    param
    現在のリクエストの変数の取得
    get
    $_を取得GET変数
    post
    $_を取得POST変数
    put
    PUT変数の取得
    delete
    DELETE変数の取得
    session
    $_を取得SESSION変数
    cookie
    $_を取得COOKIE変数
    request
    $_を取得REQUEST変数
    server
    $_を取得SERVER変数
    env
    $_を取得ENV変数
    route
    取得ルーティング(PATHINFOを含む)変数
    file
    $_を取得FILES変数
  • 取得要求タイプ
  • //     GET   
    if (Request::instance()->isGet()) echo "    GET   ";
    //     POST   
    if (Request::instance()->isPost()) echo "    POST   ";
    //     PUT   
    if (Request::instance()->isPut()) echo "    PUT   ";
    //     DELETE   
    if (Request::instance()->isDelete()) echo "    DELETE   ";
    //     Ajax   
    if (Request::instance()->isAjax()) echo "    Ajax   ";
    //     Pjax   
    if (Request::instance()->isPjax()) echo "    Pjax   ";
    //        
    if (Request::instance()->isMobile()) echo "       ";
    //     HEAD   
    if (Request::instance()->isHead()) echo "    HEAD   ";
    //     Patch   
    if (Request::instance()->isPatch()) echo "    PATCH   ";
    //     OPTIONS   
    if (Request::instance()->isOptions()) echo "    OPTIONS   ";
    //     cli
    if (Request::instance()->isCli()) echo "    cli";
    //     cgi
    if (Request::instance()->isCgi()) echo "    cgi";
    
  • 要求ヘッダ情報の取得
  • 全てのヘッダ情報Request::instance()->header()
  • を取得する.
  • 単一ヘッダ情報Request::instance()->header('user-agent')
  • を取得する.

    注意:HTTP要求ヘッダ情報の名称は大文字と小文字を区別しない.-に自動的に変換されるので、次のような書き方は等価です.
      $agent = Request::instance()->header('user-agent');
      $agent = Request::instance()->header('User-Agent');
      $agent = Request::instance()->header('USER_AGENT');