Drupal 8 如何将值传递给菜单树枝模板

Drupal 8 how to pass a value to menu twig template

我是 Drupal 新手,我想传递域 URL 以在 menu.html.twig 模板中使用。我怎样才能做到这一点。实际上我有一个包含 5 个域的菜单,它们都指向同一个 Drupal 实例。基于域名,我想让菜单处于活动状态。

谢谢

您可以在 hook_preprocess_hook(&$vars).

中完成
function mymodule_preprocess_menu(&$vars) {
  $domain = \Drupal::service('domain.negotiator')->getActiveDomain();
  $vars['domain'] = $domain->getUrl();
}

现在您可以在 twig 中使用 {{ domain }} 变量。

由于 OP 对 Drupal 不太熟悉,因此扩展了 Artreaktors 的回答。

创建一个任意名称的模块。如果您需要这方面的帮助,请查看 Drupal Console,它会对您有很大帮助。

在模块的文件夹中,您会找到一个 module_name.module 文件。

这里要添加Artreaktor给的代码:

function mymodule_preprocess_menu(&$vars) {
  $domain = \Drupal::service('domain.negotiator')->getActiveDomain();
  $vars['domain'] = $domain->getUrl();
}

这里的mymodule代表你的模块名称。不要忘记启用您的模块并清除缓存!