FOSRestBundle - QueryParam - 映射和默认值
FOSRestBundle - QueryParam - map and default value
我从版本 1.* 切换到版本 2.* 并想知道如何将数组作为默认值提供给标记为地图的 QueryParam
。
例如:
/**
* @QueryParam(name="activity_filters", map=true, requirements="user_opened_resource", default="user_opened_resource")
*/
当我尝试获取参数时:
$activityFilters = $paramFetcher->get('activity_filters');
var_dump($activityFilters); die;
结果是:
string 'user_opened_resource' (length=20)
在以前版本的 FOSRestBundle 中,我正确地收到了一个数组作为我的 get:
array (size=1)
0 => string 'user_opened_resource' (length=20)
是否可以在 2.* 版本中实现相同的结果?
您的问题似乎是 this in 1.8 to this in 2.0 中 ParamFetcher 的变化。在第一个版本 (1.8) 中,param fetcher 检查 params 是否为数组,然后在必要时将结果转换为数组。在第二个版本 (2.0) 中,默认值被传递给 ResolverTrait::resolveValue
而没有引用原始值类型应该是什么。
综上所述,我假设您使用新工作方式 (2.0+) 处理此问题的方式是使用具有单个值的数组作为默认值,而不是像...
/**
* @QueryParam(
* name="activity_filters",
* map=true,
* requirements="user_opened_resource",
* default={"user_opened_resource"}
* )
*/
我从版本 1.* 切换到版本 2.* 并想知道如何将数组作为默认值提供给标记为地图的 QueryParam
。
例如:
/**
* @QueryParam(name="activity_filters", map=true, requirements="user_opened_resource", default="user_opened_resource")
*/
当我尝试获取参数时:
$activityFilters = $paramFetcher->get('activity_filters');
var_dump($activityFilters); die;
结果是:
string 'user_opened_resource' (length=20)
在以前版本的 FOSRestBundle 中,我正确地收到了一个数组作为我的 get:
array (size=1)
0 => string 'user_opened_resource' (length=20)
是否可以在 2.* 版本中实现相同的结果?
您的问题似乎是 this in 1.8 to this in 2.0 中 ParamFetcher 的变化。在第一个版本 (1.8) 中,param fetcher 检查 params 是否为数组,然后在必要时将结果转换为数组。在第二个版本 (2.0) 中,默认值被传递给 ResolverTrait::resolveValue
而没有引用原始值类型应该是什么。
综上所述,我假设您使用新工作方式 (2.0+) 处理此问题的方式是使用具有单个值的数组作为默认值,而不是像...
/**
* @QueryParam(
* name="activity_filters",
* map=true,
* requirements="user_opened_resource",
* default={"user_opened_resource"}
* )
*/