我为base_route创建了一个任务链接和一个上下文链接:entity.node.canonical
mymodule.routing.yml
mymodule.mycustomroute:
path: '/node/{node}/custom-path'
defaults:
_form: '\Drupal\mymodule\Form\MyForm'
requirements:
_permission: 'my permission'
node: '[0-9]+'
mymodule.links.tasks.yml
mymodule.mycustomroute:
route_name: mymodule.mycustomroute
base_route: entity.node.canonical
title: 'my title'
mymodule.links.contextual.yml
mymodule.mycustomroute:
route_name: mymodule.mycustomroute
group: node
我的链接显示在我想要的每个节点上的查看/编辑/删除链接旁边。
现在我想知道如何才能使这些链接仅用于特定的节点类型?
答案 0 :(得分:3)
mymodule / mymodule.routing.yml :
case (Time.current.hour)
when 0..9, 21..23
"Late"
when 9..19
"Prime"
else
"Regular"
end
mymodule / src / Access / NodeTypeAccessCheck.php :
mymodule.mycustomroute:
path: '/node/{node}/custom-path'
defaults:
_form: '\Drupal\mymodule\Form\MyForm'
requirements:
_permission: 'my permission'
_custom_access: '\Drupal\mymodule\Access\NodeTypeAccessCheck::access'
_node_types: 'node_type_1,node_type_2,node_type_n'
node: '\d+'
答案 1 :(得分:-1)
或者您可以在mymodule.links.menu.yml文件中指定路由参数:
mymodule.add_whatever:
title: 'Add whatever'
description: 'Add whatever'
route_name: node.add
route_parameters: { node_type: 'name_of_node_type' }
menu_name: main
weight: 7