Symfony 请求获取所有 url 个参数

Symfony Request get all url Parameters

我有一个 Symfony\Component\HttpFoundation\Request 对象,我想从中获取提供的所有 url 参数。也就是说当用户访问 http://example.org/soempage?param1=value1&param2=value2&param3=value3

我想生成一个包含这些值的数组 ['param1','param2','param3'] .

我也看过这个:How to get all post parameters in 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);

没有得到想要的结果,但我收到了这个错误信息:

Attempted to call an undefined method named "all" of class "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));
            }
        }
    }

你试过了吗:

$parametersToValidate = $request->query->all();