Symfony 3: действие формы неопределенного маршрута (Microsoft Edge)
У меня проблемы с отправкой форм ТОЛЬКО на Microsoft Edge (пожалуйста, убейте его, Microsoft). Все отлично работает в Chrome и Firefox, и даже в IE.
Форма отображается правильно, но при отправке формы происходит следующее:
- Товар не сохранен
- Edge пытается перейти к 127.0.0.1:8000/en/services/undefined, и он должен перейти в / en / services /{newID} / edit, как это делается в других браузерах
- Конечно, этот маршрут не определен, и он генерирует исключение 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, но эта не получает, поэтому, чтобы добавить ее, я уже пробовал:
- $ form = $ this-> createForm (ServiceType:: class, $ service, array ("method" = "POST"));
- $ form = $ this-> createForm (ServiceType:: class, $ service, array ("method" = "GET"));
- Установка действия для ветки формы, например: {{ form_start(form, {'action': path('target_route'), 'method': 'GET'}) }}, а также с помощью POST
На самом деле они правильно получают атрибуты action и method в форме, но результат отправки остается тем же.
Это не единственная форма, которая не работает, у меня есть еще около 30 форм, но это было просто объяснить.
Я много искал без удачи. Спасибо за помощь!