Symfony 请求获取所有 url 个参数
Symfony Request get all url Parameters
我有一个 Symfony\Component\HttpFoundation\Request
对象,我想从中获取提供的所有 url 参数。也就是说当用户访问 http://example.org/soempage?param1=value1¶m2=value2¶m3=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();
我有一个 Symfony\Component\HttpFoundation\Request
对象,我想从中获取提供的所有 url 参数。也就是说当用户访问 http://example.org/soempage?param1=value1¶m2=value2¶m3=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();