У меня есть объект Symfony\Component\HttpFoundation\Request
, и из него я хочу получить все предоставленные параметры URL. Другими словами, когда пользователь посещает http://example.org/soempage?param1=value1¶m2=value2¶m3=value3
Я хочу создать массив с этими значениями ['param1','param2','param3']
.
Также я видел это: Как получить все параметры сообщения в Symfony2?
И я попробовал следующее, основываясь на вышеизложенном:
/**
* @var request Symfony\Component\HttpFoundation\Request
*/
$parametersToValidate=$request->request->all();
$parametersToValidate=array_keys($parametersToValidate);
И
/**
* @var request Symfony\Component\HttpFoundation\Request
*/
$parametersToValidate=$request->all();
$parametersToValidate=array_keys($parametersToValidate);
Без желаемого результата, но вместо этого я получаю это сообщение об ошибке:
Попытка вызвать неопределенный метод с именем all класса Symfony\Component\HttpFoundation\Request\
Изменить 1
Запрос я использую int в статический метод, который проверяет мой ввод. Метод вызывается через контроллер и реализован таким образом для повторного использования.
public static function httpRequestShouldHaveSpecificParametersWhenGiven(Request $request,array $parametersThatHttpRequestShouldHave)
{
$parametersToValidate=$request->parameters->all();
if(empty($parametersToValidate)){
return;
}
$parameters=array_keys($parametersToValidate);
foreach($parameters as $param){
if(!in_array($parameters,$parametersThatHttpRequestShouldHave)){
throw new InvalidNumberOfParametersException(implode(',',$parametersToValidate),implode(',',$parametersThatHttpRequestShouldHave),implode(',',$diff));
}
}
}