我从版本1切换过来。*到版本2。并且想知道如何将一个数组作为标记为map的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中获得相同的结果?*版本?
看起来你的问题是ParamFetcher从1.8到2.0的变化。在第一个版本(1.8)中,参数获取器检查参数是否为数组,然后在必要时将结果强制转换为数组。在第二个版本(2.0)中,默认值被传递给ResolverTrait::resolveValue
,而没有引用原始值类型。
说了这么多,我假设你用新的工作方式(2.0+)来处理这个问题的方式是使用一个默认值为单个值的数组,而不是像…
这样的字符串。/**
* @QueryParam(
* name="activity_filters",
* map=true,
* requirements="user_opened_resource",
* default={"user_opened_resource"}
* )
*/