📅  最后修改于: 2023-12-03 15:14:48.605000             🧑  作者: Mango
在 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;