Yii - Solicitudes HTTP

Las solicitudes están representadas por yii\web\Request objeto, que proporciona información sobre encabezados HTTP, parámetros de solicitud, cookies, etc.

Los métodos get() y post() Devuelve los parámetros de solicitud del componente de solicitud.

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 - Agregar un actionTestGet función a la SiteController de la plantilla de aplicación básica.

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

Step 2 - Ahora ve a http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcome, verá lo siguiente.

Para recuperar parámetros de otros métodos de solicitud (PATCH, DELETE, etc.), use el yii\web\Request::getBodyParam() método.

Para obtener el método HTTP de la solicitud actual, use el Yii::$app→request→method propiedad.

Step 3 - Modificar el actionTestGet funcionan como se muestra en el siguiente código.

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 - Ir a http://localhost:8080/index.php?r=site/test-get. Verá lo siguiente.

El componente de solicitud proporciona muchas propiedades para inspeccionar la URL solicitada.

Step 5 - Modificar el actionTestGet funcionan de la siguiente manera.

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 - En la barra de direcciones del navegador web, escriba http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcome, verá lo siguiente.

Step 7 - Para obtener la información del encabezado HTTP, puede utilizar el yii\web\Request::$headerspropiedad. Modificar elactionTestGet funciona de esta manera.

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

Step 8 - Si va a la URL http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcome, verá la salida como se muestra en el siguiente código.

Para obtener el nombre de host y la dirección IP de la máquina cliente, utilice userHost y userIP propiedades.

Step 9 - Modificar el actionTestGet funciona de esta manera.

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

Step 10 - Ir a la dirección http://localhost:8080/index.php?r=site/test-get y verá la siguiente pantalla.