Yii - Roteamento de URL
Para alterar a rota padrão do aplicativo, você deve configurar o defaultRoute propriedade.
Step 1 - Modifique o config/web.php arquivo da seguinte maneira.
<?php
$params = require(__DIR__ . '/params.php'); $config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'defaultRoute' => 'site/contact',
'components' => [
//other code
?>
Step 2 - tenho que http://localhost:8080/index.php. Você verá o padrãocontact página.
Para colocar seu aplicativo em modo de manutenção temporariamente, você deve configurar o yii\web\Application::$catchAll propriedade.
Step 3 - Adicione a seguinte função ao SiteController.
public function actionMaintenance() {
echo "<h1>Maintenance</h1>";
}
Step 4 - Então, modifique o config/web.php arquivo da seguinte maneira.
<?php
$params = require(__DIR__ . '/params.php');
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'catchAll' => ['site/maintenance'],
'components' => [
//OTHER CODE
Step 5 - Agora insira qualquer URL do seu aplicativo, você verá o seguinte.
Criação de URLs
Para criar vários tipos de URLs, você pode usar o yii\helpers\Url::to()método auxiliar. O exemplo a seguir assume que o formato de URL padrão está sendo usado.
Step 1 - Adicionar um actionRoutes() método para o SiteController.
public function actionRoutes() {
return $this->render('routes');
}
Este método simplesmente renderiza o routes Visão.
Step 2 - Dentro do diretório views / site, crie um arquivo chamado routes.php com o seguinte 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, você verá alguns usos do to() função.
A rota passou para o yii\helpers\Url::to() método pode ser relativo ou absoluto de acordo com as seguintes regras -
se a rota estiver vazia, a rota solicitada atualmente será usada.
se a rota não tiver nenhuma barra inicial, ela é considerada uma rota relativa ao módulo atual.
se a rota não contém barras, é considerada uma ID de ação do controlador atual.
o yii\helpers\Url a classe auxiliar também fornece vários métodos úteis.
Step 4 - Modifique o routes Veja conforme fornecido no código a seguir.
<?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 - Se você inserir o endereço http://localhost:8080/index.php?r=site/routes no navegador da web, você verá o seguinte.