Symfony 提交按钮不起作用 IsSubmitted 从未验证

我正在学习 symfony 4,我正在测试如何通过从表单中获取数据来更新数据库。似乎 isSubmitted 从未经过验证。


这是我的控制器


/**

 * @Route("scheduler/new", name="scheduler_create")

 * @Route("scheduler/{id}/edit", name="scheduler_edit")

 */

public function form(Task $task = null, Request $request, EntityManagerInterface $manager){


    if(!$task) {

        $task = new Task();

    }


    $form = $this->createForm(TaskType::class, $task);

    $form->handleRequest($request);


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


        $manager->persist($task);

        $manager->flush();


        return $this->redirectToRoute('scheduler_show', ['id' => $task-> getId()]);

    }


    return $this->render('scheduler/create.html.twig', [

        'formTask' => $form->createView(),

        'editMode'=> $task->getId() !== null

    ]);

}

我的看法 :


{% extends 'base.html.twig' %}


{% form_theme formTask 'bootstrap_4_layout.html.twig' %}


{% block body %}


    <h1> Création d'une tâche </h1>


    {{ form_start(formTask) }}


    <p> 

        Inscrire ici le nom souhaité pour la tâche : {{form(formTask.title, {'attr' : {'placeholder' : "Titre de la tâche"} }) }}

        Veuillez d'écrire l'objet de la tâche : {{form(formTask.content, {'attr' : {'placeholder' : "Description de la tâche"} }) }}

        Séléctionner le groupe destinataire de la tâche : {{form(formTask.groupe) }} 

    </p>

    <p> A quelle date et souhaitez vous executer la tâche ? {{form(formTask.launch_date) }} </p>

    {{form(formTask.activer) }}


    <button type="submit" class="btn btn-success">

        {% if editMode %}

            Sauvegarder les modifications

        {% else %}

            Sauvegarder la tâche

        {% endif %}

    </button>



    {{ form_end(formTask) }}


{% endblock %}

我已经使用 symfony 工作了 2 周,所以没那么久。我正在关注一个在线教程,它一直有效,直到现在我看不到任何错误消息,也不知道该如何解决。


ABOUTYOU
浏览 159回答 2
2回答

杨__羊羊

为了使这样的按钮起作用,它必须在{{ form_start(your_form) }} {{ form_end(your_form) }}树枝标签内否则它不会算作表单提交按钮你可以通过使用来解决这个问题$builder->add('submit', SubmitType::class);讨论后编辑:要自定义表单行的呈现,form_row(form.children)应该使用而不是form(form.children)因为这将显示表单错误等所有信息。

喵喵时光机

我有同样的问题:我尝试使用按钮提交,但它不起作用!我忘了放一个 {{ form_start(my_form) }} ..... {{ form_end(my_form) }}
打开App,查看更多内容
随时随地看视频慕课网APP