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

问题描述 投票:0回答:1

预先感谢那些想帮助我的人。我正在学习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个星期,所以时间不长。我正在关注在线教程,并且该教程一直有效我看不到任何错误消息,也不知道如何解决。

这是我的FormType:

<?php

namespace App\Form;

use App\Entity\Task;
use App\Entity\Groupe;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;

class TaskType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('title')
            ->add('launch_date', DateTimeType::class)
            ->add('content')
            ->add('activer')
            ->add('groupe', EntityType::class, [
                'class' => Groupe::class,
                'choice_label' => 'title'
            ])
        ;
    }

    public function configureOptions(OptionsResolver $resolver)
    {
        $resolver->setDefaults([
            'data_class' => Task::class,
        ]);
    }
}
php symfony phpmyadmin doctrine twig
1个回答
0
投票

要使这样的按钮起作用,它必须在{{form_start(your_form)}} {{form_end(your_form)}}树枝标签中

否则它将不被视为表单提交按钮

您可以使用$ builder-> add('submit',SubmitType :: class);]进行遍历。

© www.soinside.com 2019 - 2024. All rights reserved.