2017-08-31 39 views
0

我在Drupal 8網站上工作。在一個頁面中,我有一個包含GET方法的表單的PHP塊。PHP恢復完整的URL drupal 8

在接收信息的頁面中,我有一個看起來像site/page?param1=value1&param2=value2的網址。我需要得到value2

我試過很多解決方案,但我沒有找到解決辦法:

$_GET['id']; 
// returns : null 

\Drupal::service('path.current')->getPath(); 
// returns : '/node/4' 

$_SERVER['PHP_SELF']; 
// returns : 'site/page' 

$_SERVER['REQUEST_URI']; 
// returns : 'site/page' 

$_SERVER['argv']; 
// returns : null 

$_SERVER['HTTP_REFERER']; 
// returns : 'http://site/node/4/edit' 

\Drupal::request()->query->all(); 
// returns : array (size=0) empty 

$path = \Drupal::request()->getpathInfo(); 
// returns : '/page' 

\Drupal::request()->getRequestUri(); 
// returns : 'site/page' 

\Drupal::request()->attributes->get('_system_path'); 
// returns : null 

\Drupal::service('path.alias_manager')->getAliasByPath($current_path); 
// returns : '/page' 

$_SERVER['QUERY_STRING']; 
// returns : '' 

\Drupal::destination()->getAsArray(); 
// returns : 'site/page' 

有人可以幫我找到這個值2這是在網址是什麼?

回答

1

可以使用多種服務檢索URL參數(S)如:

  • request_stack
  • path.current
  • current_route_match

在這裏,我告訴你如何從讓你value2param2使用request_stack

// Initialize the service. 
$requestStack = \Drupal::service('request_stack'); 

// Get your Master Request. 
$masterRequest = $requestStack->getMasterRequest(); 

// Get the value from a GET parameter. 
$value = $masterRequest->query->get('param2'); 

再進一步:


希望它會幫助你的!

+0

當我嘗試這個時,我得到了一個「null」。我認爲問題出在這個形式上,我會試着去看這個。謝謝。 – Elehyan

+0

什麼是真正的URL?你能否在這裏添加你的表單代碼?併爲您的表單提供動力的路由文件(routing.yml)。 –

+0

你也可以嘗試使用'CurrentRequest'而不是'MasterRequest'。例如。 '$ request = $ requestStack-> getCurrentRequest();'如果有效,你在一個SubRequest中,檢查我給你的關於請求的鏈接。 –