src/Controller/ProjetController.php line 106
<?php
namespace App\Controller;
use App\Entity\Categorie;
use App\Entity\Projet;
use App\Form\ProjetType;
use App\Form\ContactFormType;
use App\Repository\CategorieRepository;
use App\Repository\ProjetRepository;
use Symfony\Component\HttpFoundation\File\UploadedFile;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Email;
class ProjetController extends AbstractController
{
#[Route('/', name: 'projet', methods: ['GET'])]
public function index(ProjetRepository $projetRepository, CategorieRepository $categorieRepository): Response
{
return $this->render('projets/index.html.twig', [
'projets' => $projetRepository->findAll(),
'categories' => $categorieRepository->findAll()
]);
}
#[Route('admin/projet', name: 'app_projet_index', methods: ['GET'])]
public function showAll(ProjetRepository $projetRepository): Response
{
return $this->render('projet/index.html.twig', [
'projets' => $projetRepository->findAll(),
]);
}
#[Route('admin/projet/new', name: 'app_projet_new', methods: ['GET', 'POST'])]
public function new(Request $request, EntityManagerInterface $em)
{
$article = new Projet();
$form = $this->createForm(ProjetType::class, $article);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
/** @var UploadedFile $file */
$file = $form->get('imagePresentation')->getData();
$file2 = $form->get('image2')->getData();
$file3 = $form->get('image3')->getData();
$file4 = $form->get('image4')->getData();
$file5 = $form->get('image5')->getData();
$file6 = $form->get('image6')->getData();
$fileName = md5(uniqid()).'.'.$file->guessExtension();
$file->move(
$this->getParameter('image_directory'),
$fileName
);
$fileName2 = md5(uniqid()).'.'.$file2->guessExtension();
$file2->move(
$this->getParameter('image_directory'),
$fileName2
);
$fileName3 = md5(uniqid()).'.'.$file3->guessExtension();
$file3->move(
$this->getParameter('image_directory'),
$fileName3
);
$fileName4 = md5(uniqid()).'.'.$file4->guessExtension();
$file4->move(
$this->getParameter('image_directory'),
$fileName4
);
$fileName5 = md5(uniqid()).'.'.$file5->guessExtension();
$file5->move(
$this->getParameter('image_directory'),
$fileName5
);
$fileName6 = md5(uniqid()).'.'.$file6->guessExtension();
$file6->move(
$this->getParameter('image_directory'),
$fileName6
);
$article->setImagePresentation($fileName);
$article->setImage2($fileName2);
$article->setImage3($fileName3);
$article->setImage4($fileName4);
$article->setImage5($fileName5);
$article->setImage6($fileName6);
$em->persist($article);
$em->flush();
return $this->redirectToRoute('app_projet_index');
// Enregistrez le nom du fichier en base de données
}
return $this->render('projet/new.html.twig', [
'form' => $form->createView(),
'projet' => $article,
]);
}
#[Route('projet/{id}', name: 'app_projet_show', methods: ['GET'])]
public function show(Projet $projet,ProjetRepository $projetRepository): Response
{
return $this->render('projets/show.html.twig', [
'projet' => $projet,
'projets' => $projetRepository->findAll(),
]);
}
#[Route('admin/projet/{id}/edit', name: 'app_projet_edit', methods: ['GET', 'POST'])]
public function edit(Request $request, Projet $projet, ProjetRepository $projetRepository): Response
{
$form = $this->createForm(ProjetType::class, $projet);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$file = $form->get('imagePresentation')->getData();
$file2 = $form->get('image2')->getData();
$file3 = $form->get('image3')->getData();
$file4 = $form->get('image4')->getData();
$file5 = $form->get('image5')->getData();
$file6 = $form->get('image6')->getData();
$fileName = md5(uniqid()).'.'.$file->guessExtension();
$file->move(
$this->getParameter('image_directory'),
$fileName
);
$fileName2 = md5(uniqid()).'.'.$file2->guessExtension();
$file2->move(
$this->getParameter('image_directory'),
$fileName2
);
$fileName3 = md5(uniqid()).'.'.$file3->guessExtension();
$file3->move(
$this->getParameter('image_directory'),
$fileName3
);
$fileName4 = md5(uniqid()).'.'.$file4->guessExtension();
$file4->move(
$this->getParameter('image_directory'),
$fileName4
);
$fileName5 = md5(uniqid()).'.'.$file5->guessExtension();
$file5->move(
$this->getParameter('image_directory'),
$fileName5
);
$fileName6 = md5(uniqid()).'.'.$file6->guessExtension();
$file6->move(
$this->getParameter('image_directory'),
$fileName6
);
$article->setImagePresentation($fileName);
$article->setImage2($fileName2);
$article->setImage3($fileName3);
$article->setImage4($fileName4);
$article->setImage5($fileName5);
$article->setImage6($fileName6);
$em->persist($article);
$em->flush();
$projetRepository->save($projet, true);
return $this->redirectToRoute('app_projet_index');
return $this->redirectToRoute('app_projet_index', [], Response::HTTP_SEE_OTHER);
}
return $this->renderForm('projet/edit.html.twig', [
'projet' => $projet,
'form' => $form,
]);
}
#[Route('admin/projet/{id}', name: 'app_projet_delete', methods: ['POST'])]
public function delete(Request $request, Projet $projet, ProjetRepository $projetRepository): Response
{
if ($this->isCsrfTokenValid('delete'.$projet->getId(), $request->request->get('_token'))) {
$projetRepository->remove($projet, true);
}
return $this->redirectToRoute('app_projet_index', [], Response::HTTP_SEE_OTHER);
}
#[Route('metiers', name: 'app_projet_metiers', methods: ['GET'])]
public function metier(ProjetRepository $projetRepository, CategorieRepository $categorieRepository): Response
{
return $this->render('metiers.html.twig', [
'projets' => $projetRepository->findAll(),
'categories' => $categorieRepository->findAll(),
]);
}
}