2012-10-18 67 views
5

假設有一個控制器在Symfony2.1中,該控制器接收數值列表(例如,如何將動態數量的輸入值傳遞給Symfony2.1中的控制器

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

,我假設$禮是一個數字ID。

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

這將是很好傳遞的唯一值組他們所有(如陣列),例如:因此,如下我將呈現在枝條模板控制器

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

其中$埃爾斯是值的陣列。當然,我猜這是不可能的,即使控制器被渲染在Twig模板中。

我發現讓輸入更具動態性的唯一方法是傳遞一個唯一值,該值將所有id輸入值分組並將它們與令牌分開。例如:

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

這是最好的方法還是我可以做得更好?

回答

0

爲什麼不只是傳遞一組參數?

控制器:

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

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

查看:

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

,或者如果你想傳遞一個數字索引數組:

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

這種方式,你可以通過在任何數量的參數你想。

+0

如果數組是在樹枝模板中手動創建的(即,具有固定的大小和預先已知的元素),則爲true。你如何通過使用一個數組來使它具有未知的長度和內容?例如,它可以由另一個控制器返回。 – JeanValjean

相關問題