📜  drupal 8 路由参数 (1)

📅  最后修改于: 2023-12-03 15:14:48.273000             🧑  作者: Mango

Drupal 8 路由参数

Drupal 8 是一个流行的开源 CMS 平台,提供了强大的路由系统,允许开发者定义 URL、路由和参数。本文将介绍 Drupal 8 路由参数,让程序员了解它们是什么以及如何使用它们。

什么是路由参数?

路由是用于将 URL 映射到特定操作和功能的机制。路由参数允许在 URL 中传递额外的数据,以便在应用程序中使用。

例如,让我们考虑如下 URL:

http://example.com/user/123

这里,“user”是路由名,而“123”是路由参数。在 Drupal 8 中,您可以通过参数名称来访问这些参数(例如,user/123 页面的用户 ID 参数)。

如何添加路由参数?

要在 Drupal 8 中添加路由参数,您需要记录路由定义时使用的参数名称。例如,这是一个基本的路由定义:

mymodule.myroute:
  path: '/mymodule/{param}'
  defaults:
    _controller: '\Drupal\mymodule\Controller\MyController::myFunction'
    _title: 'My Page'
  requirements:
    _permission: 'access content'
    param: '.+'

在这个定义中,我们在 URL 的末尾使用了“{param}”,定义了一个叫做“param”的路由参数。

使用路由参数

如果您想在控制器函数中使用路由参数,您可以像下面这样使用它们:

<?php

namespace Drupal\mymodule\Controller;

use Drupal\Core\Controller\ControllerBase;
use Symfony\Component\HttpFoundation\Response;


class MyController extends ControllerBase {

  public function myFunction($param) {
    $html_output = '<p>The value of my parameter is: ' . $param . '</p>';
    return new Response($html_output);
  }
}

在这个例子中,我们通过将参数“$param”传递给控制器函数来获取路由参数“param”的值。

注意事项
  • 路由参数名称必须使用大括号括起来,例如“{param}”。
  • 路由参数的值可以是任何字符串,包括数字、字母、特殊字符等等。
  • 如果您想让路由参数在 URL 中可选,可以使用方括号括起来(例如,“[param]”)。
  • 如果您定义了多个路由参数,就需要在控制器函数中以相同的顺序使用它们。

以上是 Drupal 8 路由参数的基础知识,希望能为您提供帮助。