【问题标题】:Drupal 8 - Get current node id from controllerDrupal 8 - 从控制器获取当前节点 ID
【发布时间】:2017-02-24 19:00:38
【问题描述】:

我正在使用 reactjs 构建 Drupal 8 模块,我需要从控制器获取当前节点 ID,以便我可以根据节点 ID 执行某些任务,但我总是收到空值,我的路由工作正常,我的函数如下:

  public function currentNodeId()
    {
        // get current node
        $node_id = \Drupal::routeMatch()->getParameter('node')->Id();

        return new JsonResponse(
            array(
                'node_id' => $node_id
            )
        );
    }

在 mymodule.routing.yml 我有:

 mymodule-currentNode:
   path: '/mymodule/currentNodeId'
   defaults:
     _controller: '\Drupal\mymodule\Controller\MyModuleController::currentNodeId'
     _title: 'Current node id'
   requirements:
     _permission: 'access content'

我可以从我的模块文件“mymodule.module”中获取当前节点 ID,就像在 currentNodeId 函数中所做的一样:

   $node_id = \Drupal::routeMatch()->getParameter('node')->Id();

有人知道这是某种安全措施还是我做错了什么?谢谢

【问题讨论】:

    标签: php drupal controller drupal-8


    【解决方案1】:

    我通过在每次加载模块时将当前节点 ID 存储在一个变量中来解决这个问题。您必须禁用模块缓存,以便每次都可以加载 .module 文件。

    更多信息在这里:https://drupal.stackexchange.com/questions/229780/get-current-node-id-from-controller/229787#229787

    【讨论】:

      猜你喜欢
      • 2021-10-08
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-19
      • 1970-01-01
      • 2014-10-31
      相关资源
      最近更新 更多