adding Beer entity, migration and crud
This commit is contained in:
94
app/src/Controller/BeerController.php
Normal file
94
app/src/Controller/BeerController.php
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Entity\Beer;
|
||||
use App\Form\BeerType;
|
||||
use App\Repository\BeerRepository;
|
||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||
use Symfony\Component\HttpFoundation\Request;
|
||||
use Symfony\Component\HttpFoundation\Response;
|
||||
use Symfony\Component\Routing\Annotation\Route;
|
||||
|
||||
/**
|
||||
* @Route("/beer")
|
||||
*/
|
||||
class BeerController extends AbstractController
|
||||
{
|
||||
/**
|
||||
* @Route("/", name="beer_index", methods={"GET"})
|
||||
*/
|
||||
public function index(BeerRepository $beerRepository): Response
|
||||
{
|
||||
return $this->render('beer/index.html.twig', [
|
||||
'beers' => $beerRepository->findAll(),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/new", name="beer_new", methods={"GET","POST"})
|
||||
*/
|
||||
public function new(Request $request): Response
|
||||
{
|
||||
$beer = new Beer();
|
||||
$form = $this->createForm(BeerType::class, $beer);
|
||||
$form->handleRequest($request);
|
||||
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$entityManager = $this->getDoctrine()->getManager();
|
||||
$entityManager->persist($beer);
|
||||
$entityManager->flush();
|
||||
|
||||
return $this->redirectToRoute('beer_index');
|
||||
}
|
||||
|
||||
return $this->render('beer/new.html.twig', [
|
||||
'beer' => $beer,
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/{id}", name="beer_show", methods={"GET"})
|
||||
*/
|
||||
public function show(Beer $beer): Response
|
||||
{
|
||||
return $this->render('beer/show.html.twig', [
|
||||
'beer' => $beer,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/{id}/edit", name="beer_edit", methods={"GET","POST"})
|
||||
*/
|
||||
public function edit(Request $request, Beer $beer): Response
|
||||
{
|
||||
$form = $this->createForm(BeerType::class, $beer);
|
||||
$form->handleRequest($request);
|
||||
|
||||
if ($form->isSubmitted() && $form->isValid()) {
|
||||
$this->getDoctrine()->getManager()->flush();
|
||||
|
||||
return $this->redirectToRoute('beer_index');
|
||||
}
|
||||
|
||||
return $this->render('beer/edit.html.twig', [
|
||||
'beer' => $beer,
|
||||
'form' => $form->createView(),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @Route("/{id}", name="beer_delete", methods={"DELETE"})
|
||||
*/
|
||||
public function delete(Request $request, Beer $beer): Response
|
||||
{
|
||||
if ($this->isCsrfTokenValid('delete'.$beer->getId(), $request->request->get('_token'))) {
|
||||
$entityManager = $this->getDoctrine()->getManager();
|
||||
$entityManager->remove($beer);
|
||||
$entityManager->flush();
|
||||
}
|
||||
|
||||
return $this->redirectToRoute('beer_index');
|
||||
}
|
||||
}
|
58
app/src/Entity/Beer.php
Normal file
58
app/src/Entity/Beer.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use App\Repository\BeerRepository;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
|
||||
/**
|
||||
* @ORM\Entity(repositoryClass=BeerRepository::class)
|
||||
*/
|
||||
class Beer
|
||||
{
|
||||
/**
|
||||
* @ORM\Id
|
||||
* @ORM\GeneratedValue
|
||||
* @ORM\Column(type="integer")
|
||||
*/
|
||||
private $id;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="string", length=255)
|
||||
*/
|
||||
private $name;
|
||||
|
||||
/**
|
||||
* @ORM\Column(type="float", nullable=true)
|
||||
*/
|
||||
private $alcool;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getName(): ?string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName(string $name): self
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getAlcool(): ?float
|
||||
{
|
||||
return $this->alcool;
|
||||
}
|
||||
|
||||
public function setAlcool(?float $alcool): self
|
||||
{
|
||||
$this->alcool = $alcool;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
26
app/src/Form/BeerType.php
Normal file
26
app/src/Form/BeerType.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
namespace App\Form;
|
||||
|
||||
use App\Entity\Beer;
|
||||
use Symfony\Component\Form\AbstractType;
|
||||
use Symfony\Component\Form\FormBuilderInterface;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
|
||||
class BeerType extends AbstractType
|
||||
{
|
||||
public function buildForm(FormBuilderInterface $builder, array $options)
|
||||
{
|
||||
$builder
|
||||
->add('name')
|
||||
->add('alcool')
|
||||
;
|
||||
}
|
||||
|
||||
public function configureOptions(OptionsResolver $resolver)
|
||||
{
|
||||
$resolver->setDefaults([
|
||||
'data_class' => Beer::class,
|
||||
]);
|
||||
}
|
||||
}
|
50
app/src/Repository/BeerRepository.php
Normal file
50
app/src/Repository/BeerRepository.php
Normal file
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace App\Repository;
|
||||
|
||||
use App\Entity\Beer;
|
||||
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
|
||||
use Doctrine\Persistence\ManagerRegistry;
|
||||
|
||||
/**
|
||||
* @method Beer|null find($id, $lockMode = null, $lockVersion = null)
|
||||
* @method Beer|null findOneBy(array $criteria, array $orderBy = null)
|
||||
* @method Beer[] findAll()
|
||||
* @method Beer[] findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
|
||||
*/
|
||||
class BeerRepository extends ServiceEntityRepository
|
||||
{
|
||||
public function __construct(ManagerRegistry $registry)
|
||||
{
|
||||
parent::__construct($registry, Beer::class);
|
||||
}
|
||||
|
||||
// /**
|
||||
// * @return Beer[] Returns an array of Beer objects
|
||||
// */
|
||||
/*
|
||||
public function findByExampleField($value)
|
||||
{
|
||||
return $this->createQueryBuilder('b')
|
||||
->andWhere('b.exampleField = :val')
|
||||
->setParameter('val', $value)
|
||||
->orderBy('b.id', 'ASC')
|
||||
->setMaxResults(10)
|
||||
->getQuery()
|
||||
->getResult()
|
||||
;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
public function findOneBySomeField($value): ?Beer
|
||||
{
|
||||
return $this->createQueryBuilder('b')
|
||||
->andWhere('b.exampleField = :val')
|
||||
->setParameter('val', $value)
|
||||
->getQuery()
|
||||
->getOneOrNullResult()
|
||||
;
|
||||
}
|
||||
*/
|
||||
}
|
Reference in New Issue
Block a user