Yii - HTTP अनुरोध

अनुरोधों का प्रतिनिधित्व किया जाता है yii\web\Request ऑब्जेक्ट, जो HTTP हेडर के बारे में जानकारी प्रदान करता है, अनुरोध पैरामीटर, कुकीज़ और इसके आगे।

विधियों get() तथा post() अनुरोध घटक के वापसी अनुरोध पैरामीटर।

Example -

$req = Yii::$app->request;
   /*
   * $get = $_GET;
   */
   $get = $req->get();

   /*
   * if(isset($_GET['id'])) { * $id = $_GET['id']; * } else { * $id = null;
   * }
   */
   $id = $req->get('id');
	
   /*
   * if(isset($_GET['id'])) { * $id = $_GET['id']; * } else { * $id = 1;
   * }
   */
   $id = $req->get('id', 1);
	
   /*
   * $post = $_POST;
	*/
   $post = $req->post();

   /*
   * if(isset($_POST['name'])) { * $name = $_POST['name']; * } else { * $name = null;
   * }
   */
   $name = $req->post('name');
		  
   /*
   * if(isset($_POST['name'])) { * $name = $_POST['name']; * } else { * $name = '';
   * }
   */
   $name = $req->post('name', '');

Step 1 - जोड़ें actionTestGet कार्य करने के लिए SiteController मूल आवेदन टेम्पलेट का।

public function actionTestGet() {
   var_dump(Yii::$app->request->get());
}

Step 2 - अब जाना है http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcome, आप निम्नलिखित देखेंगे।

अन्य अनुरोध विधियों (PATCH, DELETE, आदि) के मापदंडों को पुनः प्राप्त करने के लिए, का उपयोग करें yii\web\Request::getBodyParam() तरीका।

वर्तमान अनुरोध की HTTP विधि प्राप्त करने के लिए, का उपयोग करें Yii::$app→request→method संपत्ति।

Step 3 - संशोधित करें actionTestGet निम्न कोड में दिखाया गया है।

public function actionTestGet() {
   $req = Yii::$app->request;
   if ($req->isAjax) { echo "the request is AJAX"; } if ($req->isGet) {
      echo "the request is GET";
   }
   if ($req->isPost) { echo "the request is POST"; } if ($req->isPut) {
      echo "the request is PUT";
   }
}

Step 4 - पर जाएं http://localhost:8080/index.php?r=site/test-get। आप निम्नलिखित देखेंगे।

अनुरोधित घटक अनुरोधित URL का निरीक्षण करने के लिए कई गुण प्रदान करता है।

Step 5 - संशोधित करें actionTestGet फ़ंक्शन निम्नानुसार है।

public function actionTestGet() {
   //the URL without the host
   var_dump(Yii::$app->request->url); //the whole URL including the host path var_dump(Yii::$app->request->absoluteUrl);
   
   //the host of the URL
   var_dump(Yii::$app->request->hostInfo); //the part after the entry script and before the question mark var_dump(Yii::$app->request->pathInfo);
   
   //the part after the question mark
   var_dump(Yii::$app->request->queryString); //the part after the host and before the entry script var_dump(Yii::$app->request->baseUrl);
   
   //the URL without path info and query string
   var_dump(Yii::$app->request->scriptUrl); //the host name in the URL var_dump(Yii::$app->request->serverName);
   
   //the port used by the web server
   var_dump(Yii::$app->request->serverPort);
}

Step 6 - वेब ब्राउजर के एड्रेस बार में टाइप करें http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcome, आप निम्नलिखित देखेंगे।

Step 7 - HTTP हेडर की जानकारी प्राप्त करने के लिए, आप इसका उपयोग कर सकते हैं yii\web\Request::$headersसंपत्ति। संशोधित करेंactionTestGet इस तरह से कार्य करें।

public function actionTestGet() { 
   var_dump(Yii::$app->request->headers); 
}

Step 8 - अगर आप URL पर जाते हैं http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcome, आप निम्न कोड में दिखाए गए अनुसार आउटपुट देखेंगे।

क्लाइंट मशीन का होस्ट नाम और आईपी पता प्राप्त करने के लिए, का उपयोग करें userHost तथा userIP गुण।

Step 9 - संशोधित करें actionTestGet इस तरह से कार्य करें।

public function actionTestGet() {
   var_dump(Yii::$app->request->userHost);
   var_dump(Yii::$app->request->userIP);
}

Step 10 - पते पर जाएं http://localhost:8080/index.php?r=site/test-get और आप निम्न स्क्रीन देखते हैं।