2012-10-18 2 views
5

symfony2.1에 컨트롤러가 있다고 가정합니다. 나는 내가 번째 $ 엘리이 숫자 ID입니다 가정동적 인 숫자의 입력 값을 Symfony2.1의 컨트롤러에 전달하는 방법

public function showAction($el1, $el2, $el3){...} 

.

{% render 'AcmeBundle:BundleName:show' with {'el1':'1', 'el2':'5', 'el3':'7'} %} 

그 그룹 모두 (배열 등) 고유 한 값을 전달하는 좋은 것, 예를 들어, 다음과 같이 따라서, 나는 나뭇 가지 템플릿에서 해당 컨트롤러를 렌더링 는 $을 ELS

public function showAction($els){...} 

값의 어레이이다. 컨트롤러가 Twig 템플릿 안에 렌더링 된 경우에도 물론 가능하지 않습니다.

입력을 조금 더 동적으로 만드는 유일한 방법은 모든 id 입력 값을 그룹화하고 토큰으로 구분하는 고유 값을 전달하는 것입니다. 예 :

{% render AcmeBundle:BundleName:show with {'els': '1_5_7'} %} 

이 방법이 최선의 방법인가요? 아니면 더 잘할 수 있습니까?

답변

0

왜 인자 배열을 전달하지 않는 것이 좋을까요? 당신이 숫자 인덱스 배열을 전달하려면

{% render 'AcmeBundle:Demo:show' with {'els': {'el1': 1, 'el2': 5, 'el3': 7}} %} 

나 :

컨트롤러 :

public function showAction(array $els) 
{ 
    // ... 

    return ['els' => $els]; 
} 

보기

{% render 'AcmeBundle:Demo:show' with {'els': [1, 5, 7]} %} 

이 방법을 사용하면에 전달할 수 있습니다 임의의 수의 주장 필요.

+0

배열이 나뭇 가지 템플릿에서 수동으로 생성 된 경우 (즉, 고정 크기 및 미리 알려진 요소가있는 경우)에 해당됩니다. 알 수없는 길이와 내용을 가진 배열을 사용하면 어떻게 될까요? 그것은 예를 들어 다른 컨트롤러에 의해 반환 될 수 있습니다. – JeanValjean

관련 문제