首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Symfony5 -表单仅在提交后刷新

Symfony5 -表单仅在提交后刷新
EN

Stack Overflow用户
提问于 2021-02-04 05:19:02
回答 1查看 44关注 0票数 0

我的Symfony5应用程序有问题。提交表单后,页面会刷新,但没有任何反应。下面的代码有什么问题?我试着调试它并检查控制器哪里有一些错误,但我找不到它。在分析器中,我看不到INSERT的查询,只能看到SELECT。

TopicController:

代码语言:javascript
复制
/**
 * @param Request $request
 * @Route("/custom", name="custom")
 */
public function custom(Request $request)
{
    $form = $this->createFormBuilder()
        ->add('title', TextType::class, [
            'label' => 'Tytuł tematu'
        ])
        ->add('description', TextareaType::class, [
            'label' => 'Opis tematu',
            'attr' => [
                'rows' => 5,
                'placeholder' => 'Opis tematu...'
            ]
        ])
        ->add('submit', SubmitType::class, [
            'attr' => [
                'class' => 'btn btn-success btn-block'
            ],
            'label' => 'Zarezerwuj'
        ])
        ->add('category', ChoiceType::class, [
            'choices' => [
                'PWA' => 'PWA',
                'RWA' => 'RWA',
                'SPA' => 'SPA',
                'RIA' => 'RIA',
                'REST' => 'REST',
                'PHP REST' => 'PHP REST',
                'Inna' => 'Inna'
            ],
            'label' => 'Kategoria'
        ])
        ->add('techDescription', TextType::class, [
            'label' => 'Opis technologii',
            'attr' => [
                'placeholder' => 'Opis technologii...'
            ],
            'required' => FALSE
        ])
        ->getForm();

    $form->handleRequest($request);
    $form->getErrors();

    $topic = new Topic();
    $reservation = new Reservation();

    if ($form->isSubmitted()) {
        if ($form->isValid()) {
            $data = $form->getData();
            $em = $this->getDoctrine()->getManager();


            $topic->setCreatedAt(new \DateTime());
            $topic->setUpdatedAt(new \DateTime());
            $topic->setCustom(TRUE);
            $topic->setTitle($data['title']);
            $topic->setTopicDescription($data['topicDescription']);

            $em->persist($topic);
            $em->flush();

            $reservation->setUpdatedAt(new \DateTime());
            $reservation->setCreatedAt(new \DateTime());
            $reservation->setUser($this->getUser());
            $reservation->setCategory($data['category']);
            if (!empty($data['techDescription']))
                $reservation->setTechDescription($data['techDescription']);
            $reservation->setTopic($topic);

            $em->persist($reservation);
            $em->flush();

            if ($reservation->getId() == NULL) {
                $em->remove($topic);
                $em->flush();

                $this->addFlash('error', 'Posiadasz już aktywną rezerwację');
                return $this->redirectToRoute('topic.custom');
            }

            return $this->redirectToRoute('home');
            
        } else {

            $this->addFlash('error','Issue with validation');
        }
    }

    return $this->render('topic/custom.html.twig', [
        'form' => $form->createView()
    ]);

custom.html.twig:

代码语言:javascript
复制
{% extends('base.html.twig') %}

{% block content %}

    <div class="container mt-4 mb-4 pl-4 pr-4">
        <form class="col-md-6 mx-auto" method="" action="">
            <input type="hidden" name="token" value="{{ csrf_token('custom') }}"/>
            <div class="form-group">
                {{ form_row(form.title) }}
            </div>
            <div class="form-group">
                {{ form_row(form.description) }}
            </div>
            <div class="form-group">
                {{ form_row(form.category) }}


                <div class="mt-3" id="techDesc" style="display:none">
                    {{ form_row(form.techDescription) }}
                </div>
            </div>
            {{ form_row(form.submit) }}
        </form>
    </div>

{% endblock %}
EN

回答 1

Stack Overflow用户

发布于 2021-03-24 05:46:52

您的代码缺少{{ form_start(form) }}{{ form_end(form) }}

代码语言:javascript
复制
{{ form_start(form) }}
//form
{{ form_end(form) }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66035826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档