@@ -6,8 +6,7 @@ Cuando una aplicación Yii empieza a procesar una URL solicitada, lo primero que
...
@@ -6,8 +6,7 @@ Cuando una aplicación Yii empieza a procesar una URL solicitada, lo primero que
[acción de controlador](structure-controllers.md) correspondiente para gestionar la petición. A este proceso se
[acción de controlador](structure-controllers.md) correspondiente para gestionar la petición. A este proceso se
le llama *enrutamiento*.
le llama *enrutamiento*.
El proceso inverso se llama *creación de URLs*, y crea una URL a partir de una ruta dada y unos parámetros de consulta
El proceso inverso se llama *creación de URLs*, y crea una URL a partir de una ruta dada y unos parámetros de consulta (query) asociados. Cuando posteriormente se solicita la URL creada, el proceso de enrutamiento puede resolverla y
(query) asociados. Cuando posteriormente se solicita la URL creada, el proceso de enrutamiento puede resolverla y
convertirla en la ruta original con los parámetros asociados.
convertirla en la ruta original con los parámetros asociados.
La principal pieza encargada del enrutamiento y de la creación de URLs es [[yii\web\UrlManager|URL manager]], que se
La principal pieza encargada del enrutamiento y de la creación de URLs es [[yii\web\UrlManager|URL manager]], que se
...
@@ -20,7 +19,8 @@ Configurando el componente `urlManager` en la configuración de la aplicación,
...
@@ -20,7 +19,8 @@ Configurando el componente `urlManager` en la configuración de la aplicación,
reconocimiento arbitrario de formatos de URL sin modificar el código de la aplicación existente. Por ejemplo, se
reconocimiento arbitrario de formatos de URL sin modificar el código de la aplicación existente. Por ejemplo, se
puede usar el siguiente código para crear una URL para la acción `post/view`:
puede usar el siguiente código para crear una URL para la acción `post/view`:
``` php use yii\helpers\Url;
``` php
useyii\helpers\Url;
// Url::to() llama a UrlManager::createUrl() para crear una URL
// Url::to() llama a UrlManager::createUrl() para crear una URL
$url=Url::to(['post/view','id'=>100]);
$url=Url::to(['post/view','id'=>100]);
...
@@ -36,6 +36,7 @@ los parámetros.
...
@@ -36,6 +36,7 @@ los parámetros.
/posts/100
/posts/100
```
```
## Formatos de URL <a name="url-formats"></a>
## Formatos de URL <a name="url-formats"></a>
El [[yii\web\UrlManager|URL manager]] soporta dos formatos de URL: el formato predeterminado de URL y el formato URL
El [[yii\web\UrlManager|URL manager]] soporta dos formatos de URL: el formato predeterminado de URL y el formato URL
...
@@ -85,11 +86,8 @@ acción. Empezando por la primera parte de la ruta, la aplicación, sigue los si
...
@@ -85,11 +86,8 @@ acción. Empezando por la primera parte de la ruta, la aplicación, sigue los si
módulo actual. Si está listado, se crea un modulo de acuerdo con la configuración encontrada en el listado de
módulo actual. Si está listado, se crea un modulo de acuerdo con la configuración encontrada en el listado de
módulos, y se seguirá el Paso 2 para gestionar la siguiente parte de la ruta bajo el contexto de la creación de un
módulos, y se seguirá el Paso 2 para gestionar la siguiente parte de la ruta bajo el contexto de la creación de un
nuevo módulo.
nuevo módulo.
4. Trata el ID como si se tratara de un ID de controlador y crea un objeto controlador. Sigue el siguiente paso con la
4. Trata el ID como si se tratara de un ID de controlador y crea un objeto controlador. Sigue el siguiente paso con la parte restante de la ruta.
parte restante de la ruta.
5. El controlador busca el ID en su [[yii\base\Controller::actions()|action map]]. Si lo encuentra, crea una acción de acuerdo con la configuración encontrada en el mapa. De otra forma, el controlador intenta crear una acción en linea definida por un método de acción correspondiente al ID actual.
5. El controlador busca el ID en su [[yii\base\Controller::actions()|action map]]. Si lo encuentra, crea una acción de
acuerdo con la configuración encontrada en el mapa. De otra forma, el controlador intenta crear una acción en linea
definida por un método de acción correspondiente al ID actual.
Si ocurre algún error entre alguno de los pasos anteriores, se lanzará una excepción de tipo
Si ocurre algún error entre alguno de los pasos anteriores, se lanzará una excepción de tipo
[[yii\web\NotFoundHttpException]], indicando el fallo de proceso de enrutamiento.
[[yii\web\NotFoundHttpException]], indicando el fallo de proceso de enrutamiento.
...
@@ -108,6 +106,7 @@ aplicación como en el siguiente ejemplo:
...
@@ -108,6 +106,7 @@ aplicación como en el siguiente ejemplo:
];
];
```
```
### Ruta `catchAll` <a name="catchall-route"></a>
### Ruta `catchAll` <a name="catchall-route"></a>
A veces, se puede querer poner la aplicación Web en modo de mantenimiento temporalmente y mostrar la misma pagina de
A veces, se puede querer poner la aplicación Web en modo de mantenimiento temporalmente y mostrar la misma pagina de
...
@@ -201,6 +200,7 @@ echo Url::to('@example');
...
@@ -201,6 +200,7 @@ echo Url::to('@example');
// una URL absoluta: http://example.com/images/logo.gif
// una URL absoluta: http://example.com/images/logo.gif
echoUrl::to('/images/logo.gif',true);```
echoUrl::to('/images/logo.gif',true);```
```
Además del método `to()`, la clase auxiliar [[yii\helpers\Url]] también proporciona algunos otros métodos de creación
Además del método `to()`, la clase auxiliar [[yii\helpers\Url]] también proporciona algunos otros métodos de creación
de URLs. Por ejemplo,
de URLs. Por ejemplo,
...
@@ -221,6 +221,7 @@ echo Url::canonical();
...
@@ -221,6 +221,7 @@ echo Url::canonical();
echoUrl::previous();
echoUrl::previous();
```
```
## Uso de URLs Amigables <a name="using-pretty-urls"></a>
## Uso de URLs Amigables <a name="using-pretty-urls"></a>
Para utilizar URLs amigables, hay que configurar el componente `ulrManager` en la configuración de la aplicación como
Para utilizar URLs amigables, hay que configurar el componente `ulrManager` en la configuración de la aplicación como
...
@@ -263,6 +264,7 @@ amigable. El resto de propiedades son opcionales. Sin embargo, la anterior confi
...
@@ -263,6 +264,7 @@ amigable. El resto de propiedades son opcionales. Sin embargo, la anterior confi
Si se usa el servidor Web Apache, se puede utilizar la configuración recomendada descrita en la sección de
Si se usa el servidor Web Apache, se puede utilizar la configuración recomendada descrita en la sección de