预先感谢那些想帮助我的人。我正在学习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,
]);
}
}
要使这样的按钮起作用,它必须在{{form_start(your_form)}} {{form_end(your_form)}}树枝标签中
否则它将不被视为表单提交按钮
您可以使用$ builder-> add('submit',SubmitType :: class);]进行遍历。