src/Controller/Admin/OffreEmploiController.php line 27
<?phpnamespace App\Controller\Admin;use App\Entity\OffreEmploi;use App\Form\OffreEmploiType;use App\Repository\OffreEmploiRepository;use App\Services\Uploads\Upload;use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;use Symfony\Component\HttpFoundation\Request;use Symfony\Component\HttpFoundation\Response;use Symfony\Component\Routing\Annotation\Route;use Symfony\Component\String\Slugger\SluggerInterface;use Ttskch\PaginatorBundle\Context;use Ttskch\PaginatorBundle\Doctrine\Counter;use Ttskch\PaginatorBundle\Doctrine\Slicer;#[Route('/admin/offres/emploi')]class OffreEmploiController extends AbstractController{public function __construct(private Upload $upload,) {}#[Route('/', name: 'app_offre_index_back', methods: ['GET'])]public function index(OffreEmploiRepository $offreEmploiRepository, Context $context): Response{$qb = $offreEmploiRepository->createQueryBuilder('p');$context->initialize('id', new Slicer($qb), new Counter($qb));return $this->render('admin/post_type/offre_emploi/index.html.twig', ['offres' => $context->slice,]);}#[Route('/nouvelle', name: 'app_offre_new', methods: ['GET', 'POST'])]public function new(Request $request, OffreEmploiRepository $offreEmploiRepository, SluggerInterface $slugger): Response{$offreEmploi = new OffreEmploi();$form = $this->createForm(OffreEmploiType::class, $offreEmploi);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$offreEmploi->setCreatedAt(new \DateTime('now'))->setUpdatedAt(new \DateTime('now'));$this->upload->uploadImage($form, $offreEmploi, 'logo', $slugger, $data = null);$offreEmploiRepository->add($offreEmploi, true);return $this->redirectToRoute('app_offre_index_back', [], Response::HTTP_SEE_OTHER);}return $this->renderForm('admin/post_type/offre_emploi/offre.html.twig', ['offre' => $offreEmploi,'form' => $form,'disabled' => true,]);}#[Route('/{offreEmploi}/voir', name: 'app_offre_show', methods: ['GET'])]public function show(OffreEmploi $offreEmploi): Response{if ($offreEmploi->getSlug()) {return $this->redirectToRoute('app_offre_emploi_detail_slug',['slug' => $offreEmploi->getSlug(),]);}return $this->redirectToRoute('app_offre_emploi_detail',['offreEmploi' => $offreEmploi->getId(),]);}#[Route('/{id}/edition', name: 'app_offre_edit', methods: ['GET', 'POST'])]public function edit(Request $request, OffreEmploi $offreEmploi, OffreEmploiRepository $offreEmploiRepository, SluggerInterface $slugger): Response{$form = $this->createForm(OffreEmploiType::class, $offreEmploi);$form->handleRequest($request);if ($form->isSubmitted() && $form->isValid()) {$this->upload->editImage($form, $offreEmploi, 'logo', $slugger, $data = null);$offreEmploiRepository->add($offreEmploi, true);return $this->redirectToRoute('app_offre_index_back', [], Response::HTTP_SEE_OTHER);}return $this->renderForm('admin/post_type/offre_emploi/offre.html.twig', ['offre' => $offreEmploi,'form' => $form,'disabled' => false,]);}// #[Route('/formations/media/{id}', name : 'app_offre_filepath')]// public function mediaFormation(// $id,// OffreEmploiRepository $offreEmploiRepository// ): Response {// $item = $offreEmploiRepository->findOneBy(['id' => $id]);// $media = $item->getLogo();// return new Response('/uploads/medias/'.$media);// }#[Route('/delete/{id}', name: 'app_offre_delete', methods: ['POST'])]public function delete(Request $request, OffreEmploi $offre, OffreEmploiRepository $offreRepository): Response{if ($this->isCsrfTokenValid('delete'.$offre->getId(), $request->request->get('_token'))) {$offreRepository->remove($offre, true);}return $this->redirectToRoute('app_offre_index_back', [], Response::HTTP_SEE_OTHER);}}