2016-09-08 5 views
1

버전 1. *에서 버전 2. *로 전환하고지도로 표시된 QueryParam에 기본값으로 배열을 지정하는 방법을 궁금해했습니다. 예를 들어FOSRestBundle - QueryParam - map 및 default 값

:

/** 
* @QueryParam(name="activity_filters", map=true, requirements="user_opened_resource", default="user_opened_resource") 
*/ 

내가 PARAM 얻으려고 :

$activityFilters = $paramFetcher->get('activity_filters'); 
var_dump($activityFilters); die; 

결과는 다음과 같습니다 FOSRestBundle 이전 버전의

string 'user_opened_resource' (length=20) 

내가 제대로 배열을 받았다을 내 결과로 :

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

2. * 버전에서도 동일한 결과를 얻을 수 있습니까?

+0

안녕하세요,'QueryParam'에서'array = true'를 사용해 주실 수 있습니까? –

+0

@ MertÖksüz 안녕하세요, 버전 2. 이후'''array = true'''가'''map = true''로 대체되었습니다. –

답변

2

ParamFetcher의 변경 사항이 this in 1.8에서 this in 2.0으로 변경된 것 같습니다. 첫 번째 버전 (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"} 
*) 
*/