Symfony 3:表单操作未定义路由(Microsoft Edge)

时间:2018-12-14 09:55:01

标签: forms microsoft-edge symfony3.x

我仅在Microsoft Edge上提交表单时遇到问题(请在Microsoft处将其杀死)。一切都可以在Chrome和Firefox甚至IE中完美运行。

表单可以正确呈现,但是在提交表单时,会发生以下情况:

  1. 该项目未保存
  2. Edge尝试导航至127.0.0.1:8000/en/services/ 未定义,它应转到/ en / services / {newID} / edit ,例如在其他浏览器上也可以
  3. 当然,此路由未定义不存在,并且引发MethodNotAllowedHttpException:未找到“ GET / en / services / undefined”的路由:不允许使用方法(允许: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多种表格,但这是一个简单的解释。

我搜索了很多东西,没有任何运气。谢谢您的帮助!

0 个答案:

没有答案