【发布时间】: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