Open4
【Drupal】カスタムページを作成する
ピン留めされたアイテム
参考にしたサイト
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
:ページが表示される条件の指定
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
:名前空間の定義
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>