Yii - Requêtes HTTP
Les demandes sont représentées par le yii\web\Request objet, qui fournit des informations sur les en-têtes HTTP, les paramètres de requête, les cookies, etc.
Les méthodes get() et post() renvoyer les paramètres de demande du composant de demande.
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 - Ajouter un actionTestGet fonction à la SiteController du modèle de demande de base.
public function actionTestGet() {
var_dump(Yii::$app->request->get());
}
Step 2 - Allez maintenant à http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcome, vous verrez ce qui suit.
Pour récupérer les paramètres d'autres méthodes de requête (PATCH, DELETE, etc.), utilisez le yii\web\Request::getBodyParam() méthode.
Pour obtenir la méthode HTTP de la requête actuelle, utilisez le Yii::$app→request→method propriété.
Step 3 - Modifier le actionTestGet fonction comme indiqué dans le code suivant.
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 - Aller à http://localhost:8080/index.php?r=site/test-get. Vous verrez ce qui suit.
Le composant de requête fournit de nombreuses propriétés pour inspecter l'URL demandée.
Step 5 - Modifier le actionTestGet fonctionne comme suit.
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 - Dans la barre d'adresse du navigateur Web, saisissez http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcome, vous verrez ce qui suit.
Step 7 - Pour obtenir les informations d'en-tête HTTP, vous pouvez utiliser le yii\web\Request::$headerspropriété. Modifier leactionTestGet fonctionner de cette façon.
public function actionTestGet() {
var_dump(Yii::$app->request->headers);
}
Step 8 - Si vous allez à l'URL http://localhost:8080/index.php?r=site/testget&id=1&name=tutorialspoint&message=welcome, vous verrez la sortie comme indiqué dans le code suivant.
Pour obtenir le nom d'hôte et l'adresse IP de l'ordinateur client, utilisez userHost et userIP Propriétés.
Step 9 - Modifier le actionTestGet fonctionner de cette façon.
public function actionTestGet() {
var_dump(Yii::$app->request->userHost);
var_dump(Yii::$app->request->userIP);
}
Step 10 - Aller à l'adresse http://localhost:8080/index.php?r=site/test-get et vous voyez l'écran suivant.