2014-12-09 4 views
3

내가 get 메소드에 의해 내 양식을 제출하려고하지만 컨트롤러에 내가 가치를 얻을 어차피 여기 컨트롤러 :컨트롤러 Symfony2에 URL에서 매개 변수를 가져

var_dump($request->query->get('startPoint')); // its NULL 

내 양식 :

<form id="s_f" action ="{{ path('trip_search') }}" method="get" novalidate=""> 
    {{ form_widget(search_form, {'attr': {'class': 'search_form'} }) }} 
</form> 

생성 된 URL : URL에이 문자 %5D 관련

http://example.com/app_dev.php/search_trips?search_form%5BstartPoint%5D=3123123&search_form%5BendPoint%5D=&search_form%5 

어쩌면 문제? 누군가 나를 도울 수 있습니까?

답변

8

의 작성해야 :

var_dump($request->query->all()); 

는 모든 QS 값을 보여줍니다;

$formData['startPoints'] 
: 당신이이 같은 startPoints에 액세스 할 수 있습니다 후,

$formData = $request->query->get('search_form'); 

또는

$formData = $request->query->get($form->getName()); 

는 값의 배열을 반환 : 귀하의 경우에는

, 당신하여 QS 데이터에 액세스 할 수 있습니다

0

당신은 당신이 QS 값을 찾을 수없는 경우, 다음과 같이 수행 $request->get('startPoints') 대신 $request->query->get('startPoint')

+0

아니야! 그것은 더 느립니다. PHPDoc에서 : 컨트롤러에서이 방법을 사용하지 마십시오 : * 느린, * "명명 된"소스에서 얻는 것을 선호합니다. 대신 적절한 공개 속성 (query, attributes, request)에서 요청 매개 변수를 명시 적으로 가져 오는 것이 좋습니다. – DevAntoine

관련 문제