Yii - Routage d'URL
Pour modifier l'itinéraire par défaut de l'application, vous devez configurer le defaultRoute propriété.
Step 1 - Modifier le config/web.php fichier de la manière suivante.
<?php
$params = require(__DIR__ . '/params.php'); $config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'defaultRoute' => 'site/contact',
'components' => [
//other code
?>
Step 2 - Aller à http://localhost:8080/index.php. Vous verrez la valeur par défautcontact page.
Pour mettre temporairement votre application en mode maintenance, vous devez configurer le yii\web\Application::$catchAll propriété.
Step 3 - Ajoutez la fonction suivante au SiteController.
public function actionMaintenance() {
echo "<h1>Maintenance</h1>";
}
Step 4 - Ensuite, modifiez le config/web.php fichier de la manière suivante.
<?php
$params = require(__DIR__ . '/params.php');
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'catchAll' => ['site/maintenance'],
'components' => [
//OTHER CODE
Step 5 - Entrez maintenant n'importe quelle URL de votre application, vous verrez ce qui suit.
Créer des URL
Pour créer différents types d'URL, vous pouvez utiliser le yii\helpers\Url::to()méthode d'assistance. L'exemple suivant suppose que le format d'URL par défaut est utilisé.
Step 1 - Ajouter un actionRoutes() méthode à la SiteController.
public function actionRoutes() {
return $this->render('routes');
}
Cette méthode rend simplement le routes vue.
Step 2 - Dans le répertoire views / site, créez un fichier appelé routes.php avec le code suivant.
<?php
use yii\helpers\Url;
?>
<h4>
<b>Url::to(['post/index']):</b>
<?php
// creates a URL to a route: /index.php?r = post/index
echo Url::to(['post/index']);
?>
</h4>
<h4>
<b>Url::to(['post/view', 'id' => 100]):</b>
<?php
// creates a URL to a route with parameters: /index.php?r = post/view&id=100
echo Url::to(['post/view', 'id' => 100]);
?>
</h4>
<h4>
<b>Url::to(['post/view', 'id' => 100, '#' => 'content']):</b>
<?php
// creates an anchored URL: /index.php?r = post/view&id=100#content
echo Url::to(['post/view', 'id' => 100, '#' => 'content']);
?>
</h4>
<h4>
<b>Url::to(['post/index'], true):</b>
<?php
// creates an absolute URL: http://www.example.com/index.php?r=post/index
echo Url::to(['post/index'], true);
?>
</h4>
<h4>
<b>Url::to(['post/index'], 'https'):</b>
<?php
// creates an absolute URL using the https scheme: https://www.example.com/index.php?r=post/index
echo Url::to(['post/index'], 'https');
?>
</h4>
Step 3 - Type http://localhost:8080/index.php?r=site/routes, vous verrez quelques utilisations du to() fonction.
La route est passée au yii\helpers\Url::to() La méthode peut être relative ou absolue selon les règles suivantes -
si l'itinéraire est vide, l'itinéraire actuellement demandé sera utilisé.
si la route n'a pas de barre oblique, elle est considérée comme une route relative au module courant.
si la route ne contient pas de barres obliques, elle est considérée comme un ID d'action du contrôleur actuel.
le yii\helpers\Url helper class fournit également plusieurs méthodes utiles.
Step 4 - Modifier le routes Voir comme indiqué dans le code suivant.
<?php
use yii\helpers\Url;
?>
<h4>
<b>Url::home():</b>
<?php
// home page URL: /index.php?r=site/index
echo Url::home();
?>
</h4>
<h4>
<b>Url::base():</b>
<?php
// the base URL, useful if the application is deployed in a sub-folder of the Web root
echo Url::base();
?>
</h4>
<h4>
<b>Url::canonical():</b>
<?php
// the canonical URL of the currently requested URL
// see https://en.wikipedia.org/wiki/Canonical_link_element
echo Url::canonical();
?>
</h4>
<h4>
<b>Url::previous():</b>
<?php
// remember the currently requested URL and retrieve it back in later requests
Url::remember();
echo Url::previous();
?>
</h4>
Step 5 - Si vous entrez l'adresse http://localhost:8080/index.php?r=site/routes dans le navigateur Web, vous verrez ce qui suit.