add form species

This commit is contained in:
Hugo PRADIER
2024-06-05 11:36:46 +02:00
parent 48bc5fd8c3
commit 247f9e6a01
7 changed files with 108 additions and 15 deletions

View File

@@ -0,0 +1,37 @@
<?php
namespace App\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Entity\Species;
use App\Form\SpeciesType;
use Doctrine\ORM\EntityManagerInterface;
class SpeciesController extends AbstractController
{
#[Route('/species', name: 'app_species')]
public function new(Request $request, EntityManagerInterface $entityManager): Response
{
$species = new Species();
$form = $this->createForm(SpeciesType::class, $species);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$species = $form->getData();
$entityManager->persist($species);
$entityManager->flush();
return $this->redirectToRoute('_profiler_home');
}
return $this->render('species/species.html.twig', [
'form' => $form->createView(),
]);
}
}

View File

@@ -6,6 +6,7 @@ use App\Repository\SpeciesRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Entity(repositoryClass: SpeciesRepository::class)]
class Species
@@ -16,12 +17,15 @@ class Species
private ?int $id = null;
#[ORM\Column(length: 255)]
#[Assert\NotBlank]
private ?string $scientific_name = null;
#[ORM\Column(length: 255)]
#[Assert\NotBlank]
private ?string $vernacular_name = null;
#[ORM\Column(length: 255)]
#[Assert\NotBlank]
private ?string $region = null;
/**

28
src/Form/SpeciesType.php Normal file
View File

@@ -0,0 +1,28 @@
<?php
namespace App\Form;
use App\Entity\Species;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\SubmitType;
class SpeciesType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options): void
{
$builder
->add('scientific_name')
->add('vernacular_name')
->add('region')
->add('save', SubmitType::class, ['label' => 'Create Species']);
}
public function configureOptions(OptionsResolver $resolver): void
{
$resolver->setDefaults([
'data_class' => Species::class,
]);
}
}