Controller 通过路由和控制器加载drupal核心(node.add)表单

Controller 通过路由和控制器加载drupal核心(node.add)表单,controller,routing,drupal-8,Controller,Routing,Drupal 8,我有一个内容类型“blog”,我可以通过“/node/add/blog”访问该表单。。 我想将博客附加到文章中,我已经为其创建了一个本地任务菜单。问题是我无法通过下面路径中的链接加载我的$form。 'module_name.routing.yml' customblog.add_表单: 路径:'/node/add/blog/{node}' 默认值: _控制器:'\Drupal\custom\u blog\controller\CblogController::addBlog' _标题:“将博客

我有一个内容类型“blog”,我可以通过“/node/add/blog”访问该表单。。 我想将博客附加到文章中,我已经为其创建了一个本地任务菜单。问题是我无法通过下面路径中的链接加载我的$form。 'module_name.routing.yml'

customblog.add_表单: 路径:'/node/add/blog/{node}' 默认值: _控制器:'\Drupal\custom\u blog\controller\CblogController::addBlog' _标题:“将博客附加到URL{node}中的文章” 要求: _节点\添加\访问:'节点:博客' 选项: _节点\操作\路由:true 参数: 节点类型: 使用配置覆盖:true

我的控制器里有

public function addBlog(NodeTypeInterface $node_type, $node) {
$node_type = NodeTypeInterface::load('blog');

$entity = $this->entityTypeManager()->getStorage($node)->create(array(
  'type' => $node_type->id(),
));

//build form
$form = $this->entityFormBuilder()->getForm($entity);

return $form;
}
我犯了一个错误

RuntimeException: Controller 
"Drupal\custom_blog\Controller\CblogController::addBlog()" requires that you 
provide a value for the "$node_type" argument (because there is no default 
value or because there is a non optional argument after this one)

我也有同样的问题。我通过保持参数的名称与路由文件中使用的名称相同来解决这个问题

就你而言: 将/node/add/blog/{node}更改为/node/add/blog/{node_type}/{node}