Symfony 3: действие формы неопределенного маршрута (Microsoft Edge)

У меня проблемы с отправкой форм ТОЛЬКО на Microsoft Edge (пожалуйста, убейте его, Microsoft). Все отлично работает в Chrome и Firefox, и даже в IE.

Форма отображается правильно, но при отправке формы происходит следующее:

  1. Товар не сохранен
  2. Edge пытается перейти к 127.0.0.1:8000/en/services/undefined, и он должен перейти в / en / services /{newID} / edit, как это делается в других браузерах
  3. Конечно, этот маршрут не определен, и он генерирует исключение MethodNotAllowedHttpException: не найден маршрут для "GET /en/services/undefined": метод не разрешен (Allow: DELETE)

Я не знаю, откуда он получает неопределенный маршрут и метод удаления.

Версия Edge: Microsoft Edge 42.17134.1.0 Microsoft EdgeHTML 17.17134

Мой контроллер нового действия:

/**
 * Creates a new service entity.
 *
 * @Route("/new", name="service_new")
 * @Method({"GET", "POST"})
 */
public function newAction(Request $request)
{
    $this->denyAccessUnlessGranted(User::ROLE_SUPER_ADMIN);
    $service = new Service();
    $form = $this->createForm(ServiceType::class, $service);
    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        $em = $this->getDoctrine()->getManager();
        $em->persist($service);
        $em->flush();

        return $this->redirectToRoute('service_edit', array('id' => $service->getId()));
    }

    return $this->render('SuperAdmin/Service/new.html.twig', array(
        'service' => $service,
        'form' => $form->createView(),
    ));
}

Моя форма:

{{ form_start(form, {'action': path('target_route'), 'method': 'GET'} ) }}

/*... other form rows...*/

<div class="form-group">
    <div class="col-sm-4 col-sm-offset-2">
        <a class="btn btn-white" href="{{ path('services') }}">{{ 'app.cancel' | trans }}</a>
        <button class="ladda-button btn btn-primary" type="submit" data-style="zoom-in">{{ 'app.save'|trans }}</button>
    </div>
</div>
{{ form_end(form) }}

Я заметил, что, например, форма входа (работающая на Edge) имеет свойства action и method, но эта не получает, поэтому, чтобы добавить ее, я уже пробовал:

  1. $ form = $ this-> createForm (ServiceType:: class, $ service, array ("method" = "POST"));
  2. $ form = $ this-> createForm (ServiceType:: class, $ service, array ("method" = "GET"));
  3. Установка действия для ветки формы, например: {{ form_start(form, {'action': path('target_route'), 'method': 'GET'}) }}, а также с помощью POST

На самом деле они правильно получают атрибуты action и method в форме, но результат отправки остается тем же.

Это не единственная форма, которая не работает, у меня есть еще около 30 форм, но это было просто объяснить.

Я много искал без удачи. Спасибо за помощь!

0 ответов

Другие вопросы по тегам