Как найти контроллер формы в symfony?

Тут создается форма в модальном окне с шаблоном "booking-form", но никак не могу отыскать ее контроллер:

<div id="online_buy" class="modals-order" data-id="0" data-car="" style="display: none">
            {{ render(controller('WartFeedbackBundle:Front/FormGenerator:generateForm', {"formType": "booking", "formName": "Заявка на аренду", button: "Отправить заявку", template:'booking-form', "parameters" : { "page" : url } } )) }}
</div>

Содержимое booking-form.html.twig:

{{ form_start(form) }}
<div class="modal-main">
    <div class="content">
        <div class="title">
            ОНЛАЙН-ЗАКАЗ АВТО
        </div>

        <div class="information">
            <div class="information-title">
                ОБЩАЯ ИНФОРМАЦИЯ ЗАКАЗА
            </div>
            <div class="information-form">
                <div class="row-top">
                    <div class="title">ДАТА ПРОКАТА</div>
                    {{ form_widget(form.indate,  {attr: { 'placeholder': ''}}) }}
                    <label for="feedback_form_indate"></label>
                    <span>-</span>
                    {{ form_widget(form.outdate,  {attr: { 'class': 'js-datepicker', 'placeholder': ''}}) }}
                    <label for="feedback_form_outdate"></label>
                </div>
                <div class="row-bottom">
                    <div class="col-left">
                        {{ form_row(form.takeauto, { 'label': 'Место выдачи авто'}) }}
                    </div>
                    <div class="col-right">
                        {{ form_row(form.returnauto, { 'label': 'Место возврата авто'}) }}
                    </div>
                </div>
            </div>
        </div>

        <div class="addedService">
            <div class="addedService-title">
                ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ
            </div>
            <div class="addedService-list">
                {% for tag in form.additional %}
                    <div class="addedService-item">
                        {{ form_widget(tag) }}
                    </div>
                {% endfor %}
            </div>
        </div>
        <div class="docs">
            <div class="docs-title">
                КОПИИ ДОКУМЕНТОВ
            </div>
            <div class="docs-description">
                    Для бронирования автомобиля необходимо согласование с нашей службой безопасности. Здесь вы можете прикрепить копии требуемых
                    документов или выслать их нам по E-Mail.
            </div>
            <div class="docs-row">

                <div class="docs-item">
                    <div class="docs-item__name">
                        Паспорт РФ
                    </div>
                    <div class="docs-item__text">
                        страницы с фотографией, пропиской, сведениях о ранее выданных паспортах
                    </div>
                    {{ form_widget(form.passport) }}

                </div>
                <div class="docs-item">
                    <div class="docs-item__name">
                        Водительское удостоверение
                    </div>
                    <div class="docs-item__text"></div>
                    {{ form_widget(form.drivelicence) }}

                </div>
                <div class="docs-item">
                    <div class="docs-item__name">
                        Третий документ, подтверждающий личность
                    </div>
                    <div class="docs-item__text">
                        СНИЛС, ИНН, заграничный паспорт, военный билет и т.д.
                    </div>
                    {{ form_widget(form.thirddocument) }}
                </div>
        </div>

        <div class="contactForm">
            <div class="contactForm-title">
                КОНТАКТНАЯ ИНФОРМАЦИЯ
            </div>
            <div class="contactForm-form">
                {{ form_widget(form.name,  {attr: { 'placeholder': 'ФИО'}}) }}
                {{ form_widget(form.phone,  {attr: { 'placeholder': '+7(___)___-__-__', 'minlength' : '11', 'pattern' : '[\+]?(7|8)[\\d]{10}'}}) }}
                {{ form_widget(form.email,  {attr: { 'placeholder': 'E-mail', 'pattern':'[a-zA-Z0-9(.-_)]+@+[a-z]+\\.+[a-z]{2,4}'}}) }}
                <label for="description">
                    ПРИМЕЧАНИЕ К ЗАКАЗУ
                </label>
                {{ form_widget(form.coment) }}
            </div>
        </div>
    
    <div style="padding-bottom:70px;" class="g-recaptcha" data-sitekey="6Lf5d74ZAAAAAB2PRFmp4BQg7-zaI2j3QxyizIss"></div>

</div>
</div>
</div>
<div class="order-footer">
    <a href="#" class="contactForm-btn btn">
        {{ form_widget(form.submit,  {"label" : button }) }}
    </a>
</div>

{{ form_end(form) }}

Где контроллер этой формы?


Ответы (1 шт):

Автор решения: Michael Sivolobov

У вас в Twig идет рендер контроллера render(controller('WartFeedbackBundle:Front/FormGenerator:generateForm'...

Здесь он и находится:

WartFeedbackBundle/
╰--Controller/
   ╰--Front/
      ╰--FormGeneratorController.php

В нем вызывается метод generatorFormAction()

Конечно, это все будет работать, если вы не меняли стандартную конфигурацию, так как структуру папок можно настроить как угодно в Symfony.

Что же касается обработчика формы, то он проставляется в атрибут формы action. Если он не задан, то форма обрабатывается на той же странице, на которой рендерится. То есть в данном случае на той странице, которая рендерит следующую часть шаблона:

<div id="online_buy" class="modals-order" data-id="0" data-car="" style="display: none">
        {{ render(controller('WartFeedbackBundle:Front/FormGenerator:generateForm', {"formType": "booking", "formName": "Заявка на аренду", button: "Отправить заявку", template:'booking-form', "parameters" : { "page" : url } } )) }}
</div>
→ Ссылка