如何在Drupal专属Twig模板中获取带查询字符串的当前路径?
在Drupal Twig模板中获取带查询字符串的完整路径(无需PHP预处理)
直接用下面两种内置方式就行,不用写任何模块或theme的PHP代码:
使用
current_url()函数
这是Drupal为Twig专门提供的内置函数,可直接获取包含查询字符串的完整当前URL(返回的是Url对象,调用.toString()可转为字符串格式):{# 直接获取字符串格式的完整URL(含域名、路径、查询参数) #} {% set fullUrl = current_url().toString() %}如果需要对URL进行修改等操作,可先保留对象再处理:
{% set urlObj = current_url() %} {# 转为字符串路径 #} {% set fullPath = urlObj.toString() %}结合
path()函数与app.request变量
利用Drupal Twig环境中默认可用的app.request对象获取所有查询参数,再传递给path()函数生成带参数的路径:{# 获取仅包含路径和查询参数的字符串(不含域名) #} {% set fullPath = path('<current>', {'query': app.request.query.all()}) %}两种方式的区别:
current_url()返回带域名的完整URL,而这种方式只返回路径+查询参数部分,可根据实际需求选择。
内容的提问来源于stack exchange,提问作者stkuser
相关产品推荐
相关产品推荐

