Symfony 3: действие формы неопределенного маршрута (Microsoft Edge) - PullRequest
0 голосов
/ 14 декабря 2018

У меня проблемы с отправкой форм ТОЛЬКО в Microsoft Edge (пожалуйста, убейте его, Майкрософт).Все отлично работает в 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) имеет свойства действия и метода, но эта форма не получает, поэтомудобавить его я уже пробовал:

  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 форм, но это было просто объяснить.

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

...