Controller pour Plats avec le form et templates.
This commit is contained in:
parent
41dbddb1f7
commit
3f4507958c
@ -1,46 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Controller;
|
|
||||||
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
|
||||||
use Symfony\Component\Routing\Attribute\Route;
|
|
||||||
|
|
||||||
class CuisinierController extends AbstractController
|
|
||||||
{
|
|
||||||
#[Route('/cuisinier/ajouter', name: 'ajouter_cuisinier')]
|
|
||||||
public function ajouter(Request $request, EntityManagerInterface $entityManager): Response
|
|
||||||
{
|
|
||||||
$cuisinier = new Cuisinier();
|
|
||||||
$form = $this->createForm(CuisinierType::class, $cuisinier);
|
|
||||||
|
|
||||||
$form->handleRequest($request);
|
|
||||||
if ($form->isSubmitted() && $form->isValid()) {
|
|
||||||
$entityManager->persist($cuisinier);
|
|
||||||
$entityManager->flush();
|
|
||||||
|
|
||||||
$this->addFlash('success', 'Cuisinier ajouté avec succès !');
|
|
||||||
return $this->redirectToRoute('ajouter_cuisinier');
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->render('cuisinier/ajouter.html.twig', [
|
|
||||||
'form' => $form->createView(),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[Route('/cuisinier/supprimer/{id}', name: 'supprimer_cuisinier', methods: ['POST'])]
|
|
||||||
public function supprimer(int $id, EntityManagerInterface $entityManager): Response
|
|
||||||
{
|
|
||||||
$cuisinier = $entityManager->getRepository(Cuisinier::class)->find($id);
|
|
||||||
|
|
||||||
if (!$cuisinier) {
|
|
||||||
throw $this->createNotFoundException('Ce cuisinier n\'existe pas');
|
|
||||||
}
|
|
||||||
|
|
||||||
$entityManager->remove($cuisinier);
|
|
||||||
$entityManager->flush();
|
|
||||||
|
|
||||||
$this->addFlash('success', 'Cuisinier supprimé avec succès !');
|
|
||||||
return $this->redirectToRoute('ajouter_cuisinier');
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,78 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Controller;
|
|
||||||
|
|
||||||
use App\Entity\Plats;
|
|
||||||
use App\Form\PlatType;
|
|
||||||
use App\Form\StatutCommandesType;
|
|
||||||
use App\Repository\PlatsRepository;
|
|
||||||
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
||||||
use Symfony\Component\HttpFoundation\Response;
|
|
||||||
use Symfony\Component\Routing\Attribute\Route;
|
|
||||||
use Doctrine\ORM\EntityManagerInterface;
|
|
||||||
use Symfony\Component\HttpFoundation\Request;
|
|
||||||
|
|
||||||
#[Route('/plats', name: 'app_plat')]
|
|
||||||
class PlatController extends AbstractController
|
|
||||||
{
|
|
||||||
public function __construct(
|
|
||||||
private readonly EntityManagerInterface $entityManager,
|
|
||||||
private readonly PlatsRepository $platsRepository
|
|
||||||
)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
#[Route('/add', name: '_add')]
|
|
||||||
public function add(Request $request): Response
|
|
||||||
{
|
|
||||||
$plat = new Plats();
|
|
||||||
$form = $this->createForm(PlatType::class, $plat);
|
|
||||||
$form->handleRequest($request);
|
|
||||||
|
|
||||||
if ($form->isSubmitted() && $form->isValid()) {
|
|
||||||
$this->entityManager->persist($plat);
|
|
||||||
$this->entityManager->flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->render('plat/add.html.twig', [
|
|
||||||
'formAdd' => $form,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[Route('/list', name: '_list')]
|
|
||||||
public function list(): Response
|
|
||||||
{
|
|
||||||
$plat = $this->platsRepository->findAll();
|
|
||||||
return $this->render('plat/list.html.twig', [
|
|
||||||
'plat' => $plat,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[Route('/update/{id}', name: '_update')]
|
|
||||||
public function update(int $id, Request $request): Response
|
|
||||||
{
|
|
||||||
$plat = $this->platsRepository->find($id);
|
|
||||||
$form = $this->createForm(PlatType::class, $plat);
|
|
||||||
$form->handleRequest($request);
|
|
||||||
|
|
||||||
if($form->isSubmitted() && $form->isValid())
|
|
||||||
{
|
|
||||||
$this->entityManager->persist($plat);
|
|
||||||
$this->entityManager->flush();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $this->render('plat/add.html.twig', [
|
|
||||||
'formAdd' => $form,
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[Route('/delete/{id}', name: '_delete')]
|
|
||||||
public function delete(int $id): Response
|
|
||||||
{
|
|
||||||
$statutCommandes = $this->platsRepository->find($id);
|
|
||||||
$this->entityManager->remove($statutCommandes);
|
|
||||||
$this->entityManager->flush();
|
|
||||||
|
|
||||||
return $this->redirectToRoute('app_plat_list');
|
|
||||||
}
|
|
||||||
}
|
|
81
src/Controller/PlatsController.php
Normal file
81
src/Controller/PlatsController.php
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Controller;
|
||||||
|
|
||||||
|
use App\Entity\Plats;
|
||||||
|
use App\Form\PlatsType;
|
||||||
|
use App\Repository\PlatsRepository;
|
||||||
|
use Doctrine\ORM\EntityManagerInterface;
|
||||||
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
||||||
|
use Symfony\Component\HttpFoundation\Request;
|
||||||
|
use Symfony\Component\HttpFoundation\Response;
|
||||||
|
use Symfony\Component\Routing\Attribute\Route;
|
||||||
|
|
||||||
|
#[Route('/plats')]
|
||||||
|
final class PlatsController extends AbstractController
|
||||||
|
{
|
||||||
|
#[Route(name: 'app_plats_index', methods: ['GET'])]
|
||||||
|
public function index(PlatsRepository $platsRepository): Response
|
||||||
|
{
|
||||||
|
return $this->render('plats/index.html.twig', [
|
||||||
|
'plats' => $platsRepository->findAll(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/new', name: 'app_plats_new', methods: ['GET', 'POST'])]
|
||||||
|
public function new(Request $request, EntityManagerInterface $entityManager): Response
|
||||||
|
{
|
||||||
|
$plat = new Plats();
|
||||||
|
$form = $this->createForm(PlatsType::class, $plat);
|
||||||
|
$form->handleRequest($request);
|
||||||
|
|
||||||
|
if ($form->isSubmitted() && $form->isValid()) {
|
||||||
|
$entityManager->persist($plat);
|
||||||
|
$entityManager->flush();
|
||||||
|
|
||||||
|
return $this->redirectToRoute('app_plats_index', [], Response::HTTP_SEE_OTHER);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('plats/new.html.twig', [
|
||||||
|
'plat' => $plat,
|
||||||
|
'form' => $form,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/{id}', name: 'app_plats_show', methods: ['GET'])]
|
||||||
|
public function show(Plats $plat): Response
|
||||||
|
{
|
||||||
|
return $this->render('plats/show.html.twig', [
|
||||||
|
'plat' => $plat,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/{id}/edit', name: 'app_plats_edit', methods: ['GET', 'POST'])]
|
||||||
|
public function edit(Request $request, Plats $plat, EntityManagerInterface $entityManager): Response
|
||||||
|
{
|
||||||
|
$form = $this->createForm(PlatsType::class, $plat);
|
||||||
|
$form->handleRequest($request);
|
||||||
|
|
||||||
|
if ($form->isSubmitted() && $form->isValid()) {
|
||||||
|
$entityManager->flush();
|
||||||
|
|
||||||
|
return $this->redirectToRoute('app_plats_index', [], Response::HTTP_SEE_OTHER);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->render('plats/edit.html.twig', [
|
||||||
|
'plat' => $plat,
|
||||||
|
'form' => $form,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[Route('/{id}', name: 'app_plats_delete', methods: ['POST'])]
|
||||||
|
public function delete(Request $request, Plats $plat, EntityManagerInterface $entityManager): Response
|
||||||
|
{
|
||||||
|
if ($this->isCsrfTokenValid('delete'.$plat->getId(), $request->getPayload()->getString('_token'))) {
|
||||||
|
$entityManager->remove($plat);
|
||||||
|
$entityManager->flush();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->redirectToRoute('app_plats_index', [], Response::HTTP_SEE_OTHER);
|
||||||
|
}
|
||||||
|
}
|
@ -1,24 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Form;
|
|
||||||
|
|
||||||
use Symfony\Component\Form\AbstractType;
|
|
||||||
use Symfony\Component\Form\FormBuilderInterface;
|
|
||||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
|
||||||
|
|
||||||
class PlatType extends AbstractType
|
|
||||||
{
|
|
||||||
public function buildForm(FormBuilderInterface $builder, array $options): void
|
|
||||||
{
|
|
||||||
$builder
|
|
||||||
->add('field_name')
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function configureOptions(OptionsResolver $resolver): void
|
|
||||||
{
|
|
||||||
$resolver->setDefaults([
|
|
||||||
// Configure your form options here
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
|
42
src/Form/PlatsType.php
Normal file
42
src/Form/PlatsType.php
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Form;
|
||||||
|
|
||||||
|
use App\Entity\Commandes;
|
||||||
|
use App\Entity\Plats;
|
||||||
|
use App\Entity\Reductions;
|
||||||
|
use Symfony\Bridge\Doctrine\Form\Type\EntityType;
|
||||||
|
use Symfony\Component\Form\AbstractType;
|
||||||
|
use Symfony\Component\Form\FormBuilderInterface;
|
||||||
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
|
|
||||||
|
class PlatsType extends AbstractType
|
||||||
|
{
|
||||||
|
public function buildForm(FormBuilderInterface $builder, array $options): void
|
||||||
|
{
|
||||||
|
$builder
|
||||||
|
->add('Nom')
|
||||||
|
->add('Description')
|
||||||
|
->add('Prix')
|
||||||
|
->add('Categorie')
|
||||||
|
->add('Statut')
|
||||||
|
->add('Nb_de_commande')
|
||||||
|
->add('Commande', EntityType::class, [
|
||||||
|
'class' => Commandes::class,
|
||||||
|
'choice_label' => 'id',
|
||||||
|
'multiple' => true,
|
||||||
|
])
|
||||||
|
->add('Reduction', EntityType::class, [
|
||||||
|
'class' => Reductions::class,
|
||||||
|
'choice_label' => 'id',
|
||||||
|
])
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function configureOptions(OptionsResolver $resolver): void
|
||||||
|
{
|
||||||
|
$resolver->setDefaults([
|
||||||
|
'data_class' => Plats::class,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
4
templates/plats/_delete_form.html.twig
Normal file
4
templates/plats/_delete_form.html.twig
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<form method="post" action="{{ path('app_plats_delete', {'id': plat.id}) }}" onsubmit="return confirm('Are you sure you want to delete this item?');">
|
||||||
|
<input type="hidden" name="_token" value="{{ csrf_token('delete' ~ plat.id) }}">
|
||||||
|
<button class="btn">Delete</button>
|
||||||
|
</form>
|
4
templates/plats/_form.html.twig
Normal file
4
templates/plats/_form.html.twig
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
{{ form_start(form) }}
|
||||||
|
{{ form_widget(form) }}
|
||||||
|
<button class="btn">{{ button_label|default('Save') }}</button>
|
||||||
|
{{ form_end(form) }}
|
13
templates/plats/edit.html.twig
Normal file
13
templates/plats/edit.html.twig
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block title %}Edit Plats{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<h1>Edit Plats</h1>
|
||||||
|
|
||||||
|
{{ include('plats/_form.html.twig', {'button_label': 'Update'}) }}
|
||||||
|
|
||||||
|
<a href="{{ path('app_plats_index') }}">back to list</a>
|
||||||
|
|
||||||
|
{{ include('plats/_delete_form.html.twig') }}
|
||||||
|
{% endblock %}
|
45
templates/plats/index.html.twig
Normal file
45
templates/plats/index.html.twig
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block title %}Plats index{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<h1>Plats index</h1>
|
||||||
|
|
||||||
|
<table class="table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Id</th>
|
||||||
|
<th>Nom</th>
|
||||||
|
<th>Description</th>
|
||||||
|
<th>Prix</th>
|
||||||
|
<th>Categorie</th>
|
||||||
|
<th>Statut</th>
|
||||||
|
<th>Nb_de_commande</th>
|
||||||
|
<th>actions</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for plat in plats %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ plat.id }}</td>
|
||||||
|
<td>{{ plat.Nom }}</td>
|
||||||
|
<td>{{ plat.Description }}</td>
|
||||||
|
<td>{{ plat.Prix }}</td>
|
||||||
|
<td>{{ plat.Categorie }}</td>
|
||||||
|
<td>{{ plat.Statut ? 'Yes' : 'No' }}</td>
|
||||||
|
<td>{{ plat.NbDeCommande }}</td>
|
||||||
|
<td>
|
||||||
|
<a href="{{ path('app_plats_show', {'id': plat.id}) }}">show</a>
|
||||||
|
<a href="{{ path('app_plats_edit', {'id': plat.id}) }}">edit</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
{% else %}
|
||||||
|
<tr>
|
||||||
|
<td colspan="8">no records found</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<a href="{{ path('app_plats_new') }}">Create new</a>
|
||||||
|
{% endblock %}
|
11
templates/plats/new.html.twig
Normal file
11
templates/plats/new.html.twig
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block title %}New Plats{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<h1>Create new Plats</h1>
|
||||||
|
|
||||||
|
{{ include('plats/_form.html.twig') }}
|
||||||
|
|
||||||
|
<a href="{{ path('app_plats_index') }}">back to list</a>
|
||||||
|
{% endblock %}
|
46
templates/plats/show.html.twig
Normal file
46
templates/plats/show.html.twig
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{% extends 'base.html.twig' %}
|
||||||
|
|
||||||
|
{% block title %}Plats{% endblock %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<h1>Plats</h1>
|
||||||
|
|
||||||
|
<table class="table">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<th>Id</th>
|
||||||
|
<td>{{ plat.id }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Nom</th>
|
||||||
|
<td>{{ plat.Nom }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Description</th>
|
||||||
|
<td>{{ plat.Description }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Prix</th>
|
||||||
|
<td>{{ plat.Prix }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Categorie</th>
|
||||||
|
<td>{{ plat.Categorie }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Statut</th>
|
||||||
|
<td>{{ plat.Statut ? 'Yes' : 'No' }}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<th>Nb_de_commande</th>
|
||||||
|
<td>{{ plat.NbDeCommande }}</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<a href="{{ path('app_plats_index') }}">back to list</a>
|
||||||
|
|
||||||
|
<a href="{{ path('app_plats_edit', {'id': plat.id}) }}">edit</a>
|
||||||
|
|
||||||
|
{{ include('plats/_delete_form.html.twig') }}
|
||||||
|
{% endblock %}
|
Loading…
Reference in New Issue
Block a user