Настройка рендеринга SyliusFlowBundle

Я использую компонент Fuelux Wizard для настройки мастера в своем приложении. Это разметка HTML в моем шаблоне:

<div class="wizard" data-initialize="wizard" id="myWizard">
    <ul class="steps">
        <li data-step="1" class="active"><span class="badge">1</span>Step 1<span class="chevron"></span></li>
        <li data-step="2"><span class="badge">2</span>Step 2<span class="chevron"></span></li>
        <li data-step="3"><span class="badge">3</span>Step 3<span class="chevron"></span></li>
    </ul>
    <div class="actions">
        <button class="btn btn-default btn-prev"><span class="glyphicon glyphicon-arrow-left"></span>Previous</button>
        <button class="btn btn-default btn-next" data-last="Complete">Next<span class="glyphicon glyphicon-arrow-right"></span></button>
    </div>
    <div class="step-content">
            <div class="step-pane active sample-pane" data-step="1">
                // here goes the firstStep
            </div>
            <div class="step-pane sample-pane " data-step="2">
                // here goes the secondStep
            </div>
            <div class="step-pane sample-pane" data-step="3">
                // here goes the thirdtStep
            </div>
    </div>
</div>

Это метод displayAction для ControllerStep:

public function displayAction(ProcessContextInterface $context)
{
    $entity = new Producto();
    $form = $this->createForm(new FirstStepFormType(), $entity);

    return $this->render('RPNIBundle:Producto:_paso1.html.twig', array(
                'entity' => $entity,
                'form' => $form->createView())
    );
}

Как мне отобразить вывод displayAction там, где он должен быть? В этом случае где находится текст // here goes the firstStep? Как мне управлять Previos/Next ссылками в моем шаблоне?


person ReynierPM    schedule 15.10.2014    source источник


Ответы (1)


Что вы имели в виду под рендерингом? Кажется, вы уже сделали это в своем фрагменте кода. Что касается ссылок Предыдущая/Следующая, то есть методы $context->getPreviousStep() и $context->getNextStep(), так что в шаблоне можно сделать

{{ path('sylius_flow_display', {'scenarioAlias': 'sylius_flow', 'stepName': context.previous}) }}

person Roman Kliuchko    schedule 15.10.2014
comment
@ roma-kliuchko, я получаю эту ошибку, когда пытаюсь перейти ко второму шагу Step "second" not found in step history есть идеи? Вот как у меня есть предыдущие/следующие ссылки: {{ path('sylius_flow_display', {'scenarioAlias': 'RPNIScenario', 'stepName': 'first'}) }} для предыдущего, что я считаю неправильным, так как оно всегда будет идти на first шаг, и это для следующего {{ path('sylius_flow_forward', {'scenarioAlias': 'RPNIScenario', 'stepName': 'second'}) }}, что я тоже считаю неправильным, так как всегда будет идти на второй шаг, так как мне перейти к следующему/предыдущему и как исправить эту ошибку? - person ReynierPM; 15.10.2014
comment
@ReynierPM, извините за поздний ответ. Чтобы получить правильные ссылки, вам нужно передать context объект в шаблон и использовать его в генерации ссылок: {{ path('sylius_flow_forward', {'scenarioAlias': 'RPNIScenario', 'stepName': context.previousStep}) }} для ссылки предыдущего шага и то же самое, но с context.nextStep для ссылки следующего шага. - person Roman Kliuchko; 16.10.2014
comment
@roma-kliuchko не беспокоится о задержке, я понимаю, я понятия не имею, о чем вы говорите, вы можете взглянуть на мой шаг и посмотреть, как context подходит к нему? - person ReynierPM; 16.10.2014
comment
@ReynierPM Я имел в виду, что вам нужно передать $context в шаблон: return $this->render('RPNIBundle:Producto:_paso1.html.twig', array( 'entity' => $entity, 'form' => $form->createView(), 'context' => $context) и сгенерировать ссылки, как я описал выше. );` - person Roman Kliuchko; 16.10.2014
comment
Хорошо, но я ничего не делаю с этой переменной $context, просто устанавливаю ее как параметр, верно? Я проверил и получил эту ошибку Step with name "context.second" does not exist - person ReynierPM; 16.10.2014
comment
Также вы не оставили мне функцию displayAction здесь, на этот комментарий - person ReynierPM; 16.10.2014