Open4

【Drupal】カスタムページを作成する

WoodstockWoodstock

1. ルートの宣言

ルートの情報は以下のように定義する。

exsample/exsample.routing.yml
example.custom_page:
  path: '/custom_page/page'
  defaults:
    _controller: '\Drupal\example\Controller\ExampleContoroller::customPage'
    _title: '\Drupal\example\Controller\ExampleContoroller::getTitle'
  requirements:
    _permission: 'access content'
  • example.custom_page: ルーティング設定の名前
  • path:対象のURLパスの指定
  • _controller:ページコールバック関数の指定
  • _title:タイトルコールバック関数の指定
  • requirements:ページが表示される条件の指定
WoodstockWoodstock

2. コントローラー(Controller)の追加

コントローラーはページの本文を返す。

Controllerクラスは以下のように定義する。

example/src/Controller/ExampleController.php
<?php
namespace Drupal\example\Controller;

use Drupal\Core\Controller\ControllerBase;

class ExampleController extends ControllerBase {
  /**
  * ページタイトルを返却する。
  */
  public function getTitle(): string {
    return 'カスタムページ';
  }

  /**
  * ページのレンダー配列を返却する。
  */
  public function customPage(): array {
    return [
      '#markup' => 'Hello, world',
    ];
  }
}
  • namespace:名前空間の定義
WoodstockWoodstock

2.1. Twigの使用

customPage()関数が返却するレンダー配列を以下のようにすることで、example/templates/内にあるexsample-custom-page.html.twigを表示できる。

ExampleController.php
  public function customPage(): array {
    return [
      '#theme' => 'exsample_custom_page',
    ];
  }
custom-page.html.twig
<div>Hello, world</div>