首页 > 解决方案 > 模板中的 app.request.method 参数总是在表单提交后给出 GET

问题描述

{{ app.request.method }}表单提交后总是导致 GET

配置控制器.php

 /**
 * @Route("/edit_profile_meta", methods={"GET", "POST"}, name="user_edit_meta")
 */
public function edit_profile_meta(Request $request): Response
{

    $profile = $this->getProfile();
    $form = $this->createForm(ProfielType::class, $profile);
    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {

        $entityManager = $this->getDoctrine()->getManager();
        $entityManager->persist($profile);
        $entityManager->flush();

        $this->addFlash('success', 'user.updated_successfully');

        return $this->redirectToRoute('user_edit_meta');
    }

    return $this->render('user/edit_meta.html.twig', [
        'profile' => $profile,
        'form' => $form->createView(),
    ]);
}

_flash_messages.html.twig

{% if app.request.method == 'POST' %}
    <div class="messages">
        {% for type, messages in app.flashes %}
            {% for message in messages %}

                <div class="alert alert-dismissible alert-{{ type }} fade in" role="alert">
                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>

                    {{ message|trans }}
                </div>
            {% endfor %}
        {% endfor %}
    </div>
{% endif %}

我的表单呈现为 with method=post。我的模板仍然告诉我 request = GET 吗?

标签: phptwigsymfony4

解决方案


推荐阅读