6.6 创建routing.yml文件

routing文档见 https://www.drupal.org/node/2092643

Drupal8中的菜单主要由这几个文件构成:

  • hello_world.routing.yml 包含URL路径和回调函数的映射关系
  • hello_world.links.menu.yml 包含菜单项的结构
  • hello_world.links.action.yml 等效Drual7的常量MENU_LOCAL_ACTION
  • hello_world.links.task.yml 等效Drupal7的常量MENU_DEFAULT_LOCAL_TASK

在hello_world.routing.yml中添加如下代码:

hello_world.content:
  path: '/hello'
  defaults:
    _controller: '\Drupal\hello_world\Controller\HelloController::content'
  requirements:
    _access: 'TRUE'
  • path: 路由注册的路径,需要以斜线开头
  • _controller: 定义路由的路径HelloController的content方法
  • requirements: 用户能够访问这个页面所具有的权限

在模块目录中,创建一个符合PSR-4标准的目录结构/src/Controller,并在该目录下创建控制器文件HelloController.php。我们这个模块只是想输出hello world这样的字符串,需要在/src/Controller/HelloController.php文件中输入以下代码:

<?php
/**
 * @file
 * Contains \Drupal\hello_world\Controller\HelloController.
 */

namespace Drupal\hello_world\Controller;

use Drupal\Core\Controller\ControllerBase;

class HelloController extends ControllerBase {
  public function content() {
    return array(
        '#type' => 'markup',
        '#markup' => $this->t('Hello, World!'),
    );
  }
}

在url地址栏输入/hello,你将会看到”Hello,World!”这样的信息。

本书共79小节。


评论 (0)