Запрос Symfony получить все параметры URL

У меня есть объект Symfony\Component\HttpFoundation\Request, и из него я хочу получить все предоставленные параметры URL. Другими словами, когда пользователь посещает http://example.org/soempage?param1=value1&param2=value2&param3=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));
            }
        }
    }

person Dimitrios Desyllas    schedule 08.04.2017    source источник
comment
Можем ли мы увидеть все действие контроллера?   -  person scoolnico    schedule 08.04.2017
comment
Я передаю его как параметр не в контроллер, а в другой метод.   -  person Dimitrios Desyllas    schedule 08.04.2017


Ответы (1)


Ты пробовал:

$parametersToValidate = $request->query->all();
person scoolnico    schedule 08.04.2017
comment
Да, это помогло - person Dimitrios Desyllas; 08.04.2017
comment
Обратите внимание, что если вам нужны параметры $_POST, используйте: $request->request->all(); - person Vincent Decaux; 17.09.2019