2016-03-16 3 views
2

Я хотел бы послать массив в качестве аргумента в команде веточку, как:Symfony веточка делают контроллер аргумента массив

{{ render(controller("AppBundle:Default:Test"), { 'myarray': array }) }} 

Но я не могу понять, хороший способ. Давайте объясним следующий простой пример с базовым AppBundle. В моем проекте рендер будет запрашивать рендер из другого Bundle. Я уверен, что процесс тот же, когда это тот же Bundle или нет.

В умолчанию контроллер, я ставлю это:

/** 
* @Route("/test", name="test") 
*/ 
public function testAction() 
{ 
    return $this->render('AppBundle:Default:Test.html.twig', array (
     'tests' => array("Test 1", "Test 2", "Test 3", "Test 4") 
    )); 
} 

/** 
* @Route("/test2", name="test2") 
*/ 
public function test2Action($tests = array()) 
{ 
    var_dump($tests); 

    return $this->render('AppBundle:Default:Test2.html.twig', array(
     'tests' => $tests 
    )); 
} 

Я добавил var_dump отслеживать массив, и он не передается в функцию test2Action.

В Test.html.twig, у меня есть этот код:

{{ render(controller("AppBundle:Default:Test2"), { 'tests': tests }) }} 

В Test2.html.twig, у меня есть этот код:

{% for test in tests %} 
    {{ test }}</br> 
{% endfor %} 

Наконец, у меня есть это навигатор:

array(0) { } 

Ничего о массиве я послал функции test2Action через рендер/функции контроллера в веточке.

Я использую Symphony 3.0.3, но даже в Symphony 2.8 я не могу найти соответствующую информацию.

Возможно, я не использую лучший способ сделать это.

Пожалуйста, не могли бы вы мне помочь. Мне действительно нужно отправить массив из пакета в другой, чтобы иметь как независимые от другого.

Огромное спасибо, Stef.

+0

Тема вашего поста должен выглядеть как «предмет», а не набор нечетным ключевые слова! Вы должны приложить усилия, чтобы прийти с осмысленным предметом. – BentCoder

ответ

2

Кажется, скобка ошибка. В Test.html.twig, попробуйте следующее:

{{ render(controller("AppBundle:Default:Test2", { 'tests': tests })) }} 

вместо:

{{ render(controller("AppBundle:Default:Test2"), { 'tests': tests }) }} 

Надежда эта помощь

+0

Я глуп. Это 2 недели, я пытаюсь решить это. Спасибо, Маттео. Я бы предпочел, чтобы Twig вернул ошибку, вместо того, чтобы возвращать «null». Спасибо. –

Смежные вопросы