【问题标题】:Pass Multiple query parameter through URL通过 URL 传递多个查询参数
【发布时间】:2020-03-26 08:02:40
【问题描述】:

我有一个像下面这样的路径别名

$node_alias = '/node/add/page?id=1';

我需要的是必须将查询参数附加到具有上述 url 的目标 url,我在下面尝试过但不起作用

$node_alias = '/node/add/page?id=1&destination=/admin/content?id=1

有什么办法吗?

【问题讨论】:

标签: php drupal drupal-8


【解决方案1】:

您需要对查询字符串中的每个组件进行 url 编码。

第一个参数id=1 很好,但是destination 参数包含用于分隔uri 组件的特殊字符:/?=

您可以使用urlencode()rawurlencode()

$node_alias = '/node/add/page?id=1&destination=' . rawurlencode('/admin/content?id=1')

有一种drupal方式可以做到这一点,使用drupal_http_build_query() (d7):

$path = current_path();
$params = drupal_get_query_parameters() + array('destination' => '/admin/content?id=1');
$query = drupal_http_build_query($params);

$node_alias = $path . '?' . $query;

另见urlencode vs rawurlencode?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 2017-11-29
    • 2017-02-12
    • 2014-05-22
    • 1970-01-01
    • 2023-04-08
    相关资源
    最近更新 更多