Передать параметр множественного запроса через URL - PullRequest
1 голос
/ 26 марта 2020

У меня есть псевдоним пути, как показано ниже

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

что мне нужно, это должно добавить параметр запроса в целевой URL с указанным выше URL, я пробовал ниже, но не работает

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

Есть решение?

1 Ответ

0 голосов
/ 26 марта 2020

Вам необходимо url-кодировать каждый компонент в строке запроса.

Первый параметр id=1 в порядке, но параметр destination содержит специальные символы, используемые для разделения компонентов uri: /, ?, =.

Вы можете использовать urlencode() или rawurlencode():

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

Существует дружественный способ сделать это, используя 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 и rawurlencode?

...