📜  drupal 8 从 url 获取参数 (1)

📅  最后修改于: 2023-12-03 14:40:53.050000             🧑  作者: Mango

Drupal 8 从 URL 获取参数

在 Drupal 8 中,可以通过 URL 获取参数的值,这个过程非常简单。本文将向您介绍如何在 Drupal 8 主题中从 URL 获取参数值。

获取请求对象

要从 URL 获取参数,我们需要获取请求对象。我们可以这样做:

$request = \Drupal::request();

现在我们可以检查 URL 中任何查询字符串参数的值。

获取查询字符串参数

在请求对象中,我们可以使用 query 方法来访问查询字符串参数。例如,以下代码将从 URL 中获取名为“foo”的参数的值:

$value = $request->query->get('foo');

如果参数不存在,则返回 null。

示例

以下示例演示如何将 URL 参数的值显示在编写的 Drupal 8 主题中。

/**
 * Implements hook_preprocess_page().
 */
function MY_THEME_preprocess_page(&$variables) {
  $request = \Drupal::request();
  $foo = $request->query->get('foo');
  if (!empty($foo)) {
    $variables['foo'] = '# ' . $foo . "\n";
  }
}

以上代码将在 Drupal 8 主题的页面预处理函数(hook_preprocess_page())中获取名为“foo”的 URL 参数的值,并将其存储在 $foo 变量中。如果 $foo 变量不为空,它将在 $variables 中添加一个 Markdown 格式的标题(# )。

最后,我们可以在主题中像这样调用 $foo 变量:

{{ foo|raw }}

这将以 Markdown 格式输出 $foo。请注意,在使用 raw 过滤器时务必小心,因为它将使 HTML 代码绕过输出过滤器。需要遵循安全性最佳实践。

以上就是从 Drupal 8 URL 中获取参数的简要介绍。如果您需要执行任何其他操作,例如从 URL 获取多个参数,或者通过 Ajax 加载页面中的内容,则可以使用上述代码作为起点来实现自己的解决方案。