Symfony请求获取所有url参数

时间:2017-04-08 10:58:17

标签: php symfony symfony-3.2

我有一个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);

没有所需的结果,而是收到此错误消息:

  

尝试调用名为" all"的未定义方法。 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));
            }
        }
    }

1 个答案:

答案 0 :(得分:14)

你有没有尝试过:

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