Automati c страница обратная ссылка в Symfony - PullRequest
1 голос
/ 02 апреля 2020

Я хотел бы найти правильный способ добавить кнопку отмены закрытия рядом с кнопкой отправки в формах с Symfony 5. Основываясь на моем исследовании Inte rnet, я нашел несколько способов:

  • добавьте кнопку в шаблон веточки с блогом submit_widget. Это работает, но я не могу изменить маршрут, так как не могу перенести какие-либо переменные из контроллера.

  • добавить простой, как с href="javascript:history.go(-1)". Эффективно, но безобразно!

  • добавить еще одну кнопку отправки с атрибутом formnovalidate, основанную на , который публикует и , который публикует . Но мне кажется, что эта функция дольше работает в Symfony 5.

Я не могу понять, что этот тип функции невозможен в платформе.

Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 02 апреля 2020

Я наконец-то нашел решение, основанное на совете emix.

Так что да, очевидно, давайте забудем опцию js.

Для доступа к переменной внутри ветки В шаблоне формы я просто передаю переменную route_back в Контроллере:

$view = $form->createView();
$view->vars['route_back']='account';
return $this->render('home/index.html.twig', [
    'form' => $view
]);

И затем добавляю динамически вставляемую ссылку в шаблон формы веточки:

{%- block form_end -%}
    <div class="row mt-5">
        <div class="col-6 text-right">
            <a class="btn-secondary btn w-75" href="{{ path(route_back) }}">{% trans %}Cancel{% endtrans %}</a>
        </div>
        <div class="col-6 text-left">
            <button type="submit" id="account_save" name="account[save]" class="btn-primary btn w-75">{% trans %}Save{% endtrans %}</button>
        </div>
    </div>
{%- endblock form_end -%}

По типу форму, я, конечно, удалил кнопку отправки, как рекомендовано в официальной документации :

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('name', TextType::class)
        ->add('email', EmailType::class)
    ;
}
0 голосов
/ 02 апреля 2020

Вы должны вручную создать кнопку в представлении Twig и соответственно настроить ее href.

Например. если вы находитесь на странице blog_posts_edit, создайте ссылку на страницу block_posts_index (mutatis mutandis):

<a href="{{ path('blog_posts_index') }}">
    Return to the list
</a>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...