FOSRestBundle - QueryParam - 地图和默认值

时间:2016-09-08 07:39:51

标签: php symfony fosrestbundle

我从版本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的早期版本中,由于我的获取,我正确地收到了一个数组:

array (size=1)
  0 => string 'user_opened_resource' (length=20)

是否有可能在2. *版本中获得相同的结果?

1 个答案:

答案 0 :(得分:2)

您的问题似乎是从this in 1.8this 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"}
 * )
 */