Настройка рендеринга шагов формы путем разделения каждого представления на панели или элементы div

я использую CraueFormFlowBundle в разработке, а также я использую Fuelux Wizard2 для рендера моего волшебника. Мне удалось изменить способ отображения вкладок в CraueFormFlowBundle путем перезаписи stepList_content.html.twig шаблон на моем app/Resources каталог, но не может найти способ сделать то же самое с содержимым формы. Идея компонента Wizard состоит в том, чтобы нарисовать каждый шаг в отдельном элементе div, например:

<div class="step-content">
<div class="step-pane" data-step="1">
// first step goes here
</div>
<div class="step-pane sample-pane " data-step="2">
// second step goes here
</div>
<div class="step-pane sample-pane" data-step="3">
// third step goes here and so on
</div>
</div>

Как я могу заставить это работать? Возможно?

1

Решение

Я использую CraueFormFlowBundle в одном из моих проектов. У меня есть один шаблон ветки с кодом, подобным следующему:

    {%- if flow.currentStepNumber == 1 %}
blah blah blah yada yada yada
{%- elseif flow.currentStepNumber == 2 %}
blah blah blah yada yada yada
{%- elseif flow.currentStepNumber ==3 %}
blah blah blah yada yada yada
{%- elseif flow.currentStepNumber ==4 %}
blah blah blah yada yada yada
{%- endif %}

Очевидно, вам нужно передать переменную потока из вашего контроллера в шаблон. При использовании @Template аннотация:

return array(
'form'     => $form->createView(),
'flow'     => $flow,
);

…где $ flow — сервис, определенный в config / services.yml и т. д.

$flow = $this->get('your.flow_service');
1

Другие решения

Других решений пока нет …