我正在使用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();
任何人都知道这是某种安全还是我做错了什么?谢谢
答案 0 :(得分:0)
我通过在每次加载模块时将当前节点id存储在变量中来解决这个问题。您必须禁用模块高速缓存,以便每次都可以加载.module文件。
此处有更多信息:https://drupal.stackexchange.com/questions/229780/get-current-node-id-from-controller/229787#229787