example.com/node/add/dispo?arg1=1&arg2=2가있는 페이지에서 동일한 유형의 URL로 사용자를 리디렉션해야합니다. 그러나 단순히을 수행하면 drupal_goto(request_uri());
사용자를 example.com/node/add/dispo%25F%3C 등으로 리디렉션합니다.
str_replace를 시도했지만 작동하지 않았습니다.
해결 방법이 있습니까?
example.com/node/add/dispo?arg1=1&arg2=2가있는 페이지에서 동일한 유형의 URL로 사용자를 리디렉션해야합니다. 그러나 단순히을 수행하면 drupal_goto(request_uri());
사용자를 example.com/node/add/dispo%25F%3C 등으로 리디렉션합니다.
str_replace를 시도했지만 작동하지 않았습니다.
해결 방법이 있습니까?
답변:
drupal_goto()
함수 $options
에 전달 될 매개 변수를 승인합니다 url()
. 다음과 같은 쿼리 문자열을 전달할 수 있습니다.
$options = array('query' => array('foo' => 'bar'));
drupal_goto('path', $options);
이 예제는 / path? foo = bar로 전달됩니다.
drupal_goto()
것이 제공된 매개 변수를 기반으로 URL을 작성 header()
하고 자체적으로 호출 하는 것입니다. 주요 차이점 drupal_exit()
은 호출되어 스크립트가 완전히 종료되고 $_GET['destination']
설정 되어 있으면 함수에 전달되는 경로가 무시되는 것입니다. 일반적으로 drupal_goto()
사용해야하지만 좋은 나이 header()
가 더 적절한 경우가 있습니다. 해야 할 일에 달려 있습니다
이것은 Clive의 답변과 동일합니다. 올바른 IMO이지만 사용 사례 1 : 1에 적합한 답변을 추가하고 싶었습니다.
$options = array('query' => drupal_get_query_parameters());
drupal_goto(current_path(), $options);
drupal_goto()
현재 위치와 동일한 위치로 전화를 걸었 습니다.
mysite.com/node/add/dispo?arg1=1&arg2=2
current_path () 는 node / add / dispo를 반환합니다; drupal_get_query_parameters () 는 내부 경로 node / add / dispo를$_GET
제외한 모든 매개 변수를 리턴합니다 $_GET['q']
.
를 호출 drupal_goto()
하면 Drupal은 동일한 URI를 다시 작성하여 사용자를 보낼 수 있습니다.
실제로 나는 그것을 사용하여 작동하게했다. header("location: " . $base_path . request_uri());