📜  drupal8 从路由中获取参数 (1)

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

Drupal 8 - 从路由中获取参数

在 Drupal 8 中,我们可以通过路由来访问不同的页面和功能。从路由中获取参数是很常见的需求,特别是在开发自定义模块或主题时。

下面我们来介绍一下如何从路由中获取参数。以获取当前节点的 ID 为例,我们需要知道当前路由的名称和路由中参数的名字。在 Drupal 8 中,可以通过下面的代码来获取当前节点的 ID:

$node = \Drupal::routeMatch()->getParameter('node');
$nid = $node ? $node->id() : NULL;

这段代码中,Drupal::routeMatch() 返回当前路由的对象,getParameter() 方法可以根据参数的名字获取对应的参数值。在这个例子中,我们获取了当前路由中名为 node 的参数,并把它转化为节点对象,然后通过 id() 方法获取节点的 ID。

除了上面的例子外,还有很多其他的场景需要从路由中获取参数。例如,获取遍历节点列表时的分页数、获取当前用户的 UID 等等。

总之,了解如何从路由中获取参数是 Drupal 8 开发中的基础技能之一。希望这篇文章可以帮助你更好地理解 Drupal 8 中的路由和参数传递。


代码片段:

$node = \Drupal::routeMatch()->getParameter('node');
$nid = $node ? $node->id() : NULL;

返回的 $nid 即为当前节点的 ID。

示例代码 1 - 获取当前节点的 ID

```php
$node = \Drupal::routeMatch()->getParameter('node');
$nid = $node ? $node->id() : NULL;