📅  最后修改于: 2023-12-03 14:40:53.050000             🧑  作者: Mango
在 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 加载页面中的内容,则可以使用上述代码作为起点来实现自己的解决方案。