Yii-URL 라우팅

응용 프로그램의 기본 경로를 변경하려면 다음을 구성해야합니다. defaultRoute 특성.

Step 1 − 수정 config/web.php 다음과 같은 방법으로 파일.

<?php
   $params = require(__DIR__ . '/params.php'); $config = [
      'id' => 'basic',
      'basePath' => dirname(__DIR__),
      'bootstrap' => ['log'],
      'defaultRoute' => 'site/contact',
      'components' => [
         //other code
?>

Step 2 − 도착 http://localhost:8080/index.php. 기본값이 표시됩니다.contact 페이지.

응용 프로그램을 일시적으로 유지 관리 모드로 전환하려면 다음을 구성해야합니다. yii\web\Application::$catchAll 특성.

Step 3 − 다음 기능을 SiteController.

public function actionMaintenance() {
   echo "<h1>Maintenance</h1>";
}

Step 4 − 그런 다음 config/web.php 다음과 같은 방법으로 파일.

<?php
   $params = require(__DIR__ . '/params.php');
   $config = [
      'id' => 'basic',
      'basePath' => dirname(__DIR__),
      'bootstrap' => ['log'],
      'catchAll' => ['site/maintenance'],
      'components' => [
         //OTHER CODE

Step 5 − 이제 응용 프로그램의 URL을 입력하면 다음이 표시됩니다.

URL 생성

다양한 종류의 URL을 만들려면 yii\helpers\Url::to()도우미 방법. 다음 예에서는 기본 URL 형식이 사용된다고 가정합니다.

Step 1 − 추가 actionRoutes() 방법 SiteController.

public function actionRoutes() {
   return $this->render('routes');
}

이 방법은 단순히 routes 전망.

Step 2 − 뷰 / 사이트 디렉토리 내에 routes.php 다음 코드로.

<?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 − 유형 http://localhost:8080/index.php?r=site/routes, 당신은 to() 함수.

통과 된 경로 yii\helpers\Url::to() 방법은 다음 규칙에 따라 상대적이거나 절대적 일 수 있습니다.

  • 경로가 비어 있으면 현재 요청 된 경로가 사용됩니다.

  • 경로에 선행 슬래시가 없으면 현재 모듈에 상대적인 경로로 간주됩니다.

  • 경로에 슬래시가 없으면 현재 컨트롤러의 작업 ID로 간주됩니다.

그만큼 yii\helpers\Url 도우미 클래스는 또한 몇 가지 유용한 메서드를 제공합니다.

Step 4 − 수정 routes 다음 코드와 같이 봅니다.

<?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 − 주소를 입력하는 경우 http://localhost:8080/index.php?r=site/routes 웹 브라우저에서 다음을 볼 수 있습니다.