Yii - Enrutamiento de URL
Para cambiar la ruta predeterminada de la aplicación, debe configurar el defaultRoute propiedad.
Step 1 - Modificar el config/web.php archivo de la siguiente manera.
<?php
$params = require(__DIR__ . '/params.php');
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'defaultRoute' => 'site/contact',
'components' => [
//other code
?>
Step 2 - Tengo que http://localhost:8080/index.php. Verás el predeterminadocontact página.
Para poner su aplicación en modo de mantenimiento temporalmente, debe configurar el yii\web\Application::$catchAll propiedad.
Step 3 - Agregue la siguiente función al SiteController.
public function actionMaintenance() {
echo "<h1>Maintenance</h1>";
}
Step 4 - Luego, modifique el config/web.php archivo de la siguiente manera.
<?php
$params = require(__DIR__ . '/params.php');
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'catchAll' => ['site/maintenance'],
'components' => [
//OTHER CODE
Step 5 - Ahora ingrese cualquier URL de su aplicación, verá lo siguiente.
Creando URL
Para crear varios tipos de URL, puede utilizar el yii\helpers\Url::to()método de ayuda. El siguiente ejemplo asume que se está utilizando el formato de URL predeterminado.
Step 1 - Agregar un actionRoutes() método para el SiteController.
public function actionRoutes() {
return $this->render('routes');
}
Este método simplemente hace que el routes ver.
Step 2 - Dentro del directorio vistas / sitio, cree un archivo llamado routes.php con el siguiente código.
<?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 - Tipo http://localhost:8080/index.php?r=site/routes, verá algunos usos del to() función.
La ruta pasó al yii\helpers\Url::to() El método puede ser relativo o absoluto de acuerdo con las siguientes reglas:
si la ruta está vacía, se utilizará la ruta solicitada actualmente.
si la ruta no tiene una barra inclinada, se considera que es una ruta relativa al módulo actual.
si la ruta no contiene barras, se considera que es un ID de acción del controlador actual.
los yii\helpers\Url La clase de ayuda también proporciona varios métodos útiles.
Step 4 - Modificar el routes Ver como se indica en el siguiente código.
<?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 ingresa la dirección http://localhost:8080/index.php?r=site/routes en el navegador web, verá lo siguiente.