Большое спасибо за ответы здесь , но они действительно не помогли мне. В следующий раз я пытаюсь добавить больше примеров кода;)
Моя цель состояла в том, чтобы сделать из действия в шаблон, но с разными параметрами и сделать эти различные содержимое как обертонов в родительском представлении.
Пример: с учетом шаблона «view.html.twig», который включает в себя 2 раза шаблон «myPartial.html.twig», но первый раз с параметром и вторым временем без параметра. На основе этого параметра необходимо вернуть другое содержимое.
Мой вопрос был теперь, почему, по-видимому, только первое действие отображается в Symfony, так как мои частичные представления имеют одинаковый контент.
Так это то, что я в настоящее время:
1 контроллер, 2 Действия, как называют 3-го действия для извлечения данных и вернуть значение к действию вызова. Затем оба действия вызывают метод рендеринга со значениями, отображаемыми из третьего действия.
Это то, что он выглядит сейчас:
<div class="tab-content clearfix">
<div class="tab-pane" id="1b">
{% render controller('MyBundle:MyController:list1') %}
</div>
<div class="tab-pane" id="2b">
{% render controller('MyBundle:MyController:list2', {'type' : 1}) %}
</div>
Но то, что я хотел достичь было сделать что-то вроде этого (который не работал, потому что тогда обе вкладки будут показывать одинаковое содержание):
<div class="tab-content clearfix">
<div class="tab-pane" id="1b">
{% render controller('MyBundle:MyController:list') %}
</div>
<div class="tab-pane" id="2b">
{% render controller('MyBundle:MyController:list', {'type' : 1}) %}
</div>
Что я нахожу в заблуждение, поскольку в обоих случаях "визуализации" я s, поэтому я ожидал бы, что контроллер будет вызван в оба раза, так что и частичный вид в контроллере будет отображаться оба раза. Но, видимо, это было не так :(Сам контроллер выглядит примерно так:
public function list1Action()
{
$twigVars = //do something to build the twig vars without param;
return $this->render('@MyBundle/Test/partial_list.html.twig', array(
'vars' => $twigVars,
));
}
public function list2Action($param)
{
$twigVars = //do something to build the twig vars with param;
return $this->render('@MyBundle/Test/partial_list.html.twig', array(
'vars' => $twigVars,
));
}
Хотя то, что я хотел было что-то вроде этого:
public function listAction($param = '')
{
if ($param) {
$twigVars = //do something to return the twig vars with param;
} else {
$twigVars = //do something else to return twig vars without param;
}
return $this->render('@MyBundle/Test/partial_list.html.twig', array(
'vars' => $twigVars,
));
}
Пожалуйста, обновите вопрос с соответствующим кодом (контроллеры/просмотров) – DarkBee
Был ли один из ответов ответом на ваш вопрос? –