add form species
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
48bc5fd8c3
commit
247f9e6a01
@ -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(),
|
||||
]);
|
||||
}
|
||||
}
|
@ -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,
|
||||
]);
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
{% extends 'base.html.twig' %}
|
||||
|
||||
{% block title %}Hello SpeciesController!{% endblock %}
|
||||
|
||||
{% block body %}
|
||||
<style>
|
||||
.example-wrapper { margin: 1em auto; max-width: 800px; width: 95%; font: 18px/1.5 sans-serif; }
|
||||
.example-wrapper code { background: #F5F5F5; padding: 2px 6px; }
|
||||
</style>
|
||||
|
||||
<div class="example-wrapper">
|
||||
<h1>Hello {{ controller_name }}! ✅</h1>
|
||||
|
||||
This friendly message is coming from:
|
||||
<ul>
|
||||
<li>Your controller at <code>/home/scratch/hupradier1/herbarium/src/Controller/SpeciesController.php</code></li>
|
||||
<li>Your template at <code>/home/scratch/hupradier1/herbarium/templates/species/index.html.twig</code></li>
|
||||
</ul>
|
||||
</div>
|
||||
{% endblock %}
|
@ -0,0 +1,3 @@
|
||||
{{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }}
|
||||
{{ form_widget(form) }}
|
||||
{{ form_end(form) }}
|
Loading…
Reference in new issue