【问题标题】:Symfony Request get all url ParametersSymfony 请求获取所有 url 参数
【发布时间】:2017-04-08 10:58:16
【问题描述】:

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

没有想要的结果,而是收到以下错误消息:

试图调用“Symfony\Component\HttpFoundation\Request\”类的名为“all”的未定义方法

编辑 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));
            }
        }
    }

【问题讨论】:

  • 我们可以看到整个控制器动作吗?
  • 它不是进入控制器,而是进入另一个方法,我将它作为参数传递。

标签: php symfony symfony-3.2


【解决方案1】:

你试过了吗:

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

【讨论】:

  • 是的,有帮助
  • 请注意,如果您想要 $_POST 参数,请使用:$request->request->all();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-13
  • 2012-01-17
  • 2012-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多