<?php
namespace App\Controller;
use App\Entity\Categories;
use App\Entity\Mymarket;
use App\Form\MymarketType;
use App\Repository\CategoriesRepository;
use App\Repository\MymarketRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
/**
* @Route("/mymarket")
*/
class MymarketController extends AbstractController
{
/**
* @Route("/", name="mymarket_index", methods={"GET"})
* @param MymarketRepository $mymarketRepository
* @return Response
*/
public function index(MymarketRepository $mymarketRepository): Response
{
return $this->render('admin/mymarket/index.html.twig', [
'mymarkets' => $mymarketRepository->findAll(),
]);
}
/**
* @Route("/new", name="mymarket_new", methods={"GET","POST"})
* @param Request $request
* @return Response
*/
public function new(Request $request): Response
{
$mymarket = new Mymarket();
$form = $this->createForm(MymarketType::class, $mymarket);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$file = $form->get('image')->getData();
if($file){
$image = $this->file($form->get('image')->getData());
$name = $this->uniqueId().'.'.$image->getFile()->guessExtension();
$image->getFile()->move('assets/uploads/mymarket',$name);
$mymarket->setImage($name);
}
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($mymarket);
$entityManager->flush();
return $this->redirectToRoute('mymarket_index');
}
return $this->render('admin/mymarket/new.html.twig', [
'mymarket' => $mymarket,
'form' => $form->createView(),
]);
}
/**
* @Route("/hdjsk78{id}857teus/", name="mymarket_show", methods={"GET"})
* @param Mymarket $mymarket
* @return Response
*/
public function show(Mymarket $mymarket, MymarketRepository $mymarketRepository): Response
{
return $this->render('admin/mymarket/show.html.twig', [
'mymarket' => $mymarket,
'mymarkets' => $mymarketRepository->findAll(),
'categories' => $mymarket->getCategories(),
'flag' => '0'
]);
}
/**
* @Route("/ddjsk857teus/list/", name="mymarket_list", methods={"GET"})
* @param MymarketRepository $mymarketRepository
* @return Response
*/
public function listMarket(MymarketRepository $mymarketRepository): Response
{
return $this->render('admin/mymarket/marketsListe.html.twig', [
'mymarkets' => $mymarketRepository->findAll()
]);
}
/**
* @Route("/categories/djsk78{id}857te{category}us", name="mymarket_show_category", methods={"GET"})
* @param Mymarket $mymarket
* @param MymarketRepository $mymarketRepository
* @param CategoriesRepository $categoriesRepository
* @param $category
* @return Response
* @internal param Categories $categories
* @internal param Mymarket $mymarket
*/
public function show_category(Mymarket $mymarket, MymarketRepository $mymarketRepository, CategoriesRepository $categoriesRepository, $category): Response
{
return $this->render('admin/mymarket/show.html.twig', [
'mymarket' => $mymarket,
'mymarkets' => $mymarketRepository->findAll(),
'categories' => $categoriesRepository->findById($category),
'flag' => '1'
]);
}
/**
* @Route("/krih587{id}47oiyheee/edit", name="mymarket_edit", methods={"GET","POST"})
* @param Request $request
* @param Mymarket $mymarket
* @return Response
*/
public function edit(Request $request, Mymarket $mymarket): Response
{
$form = $this->createForm(MymarketType::class, $mymarket);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$file = $form->get('image')->getData();
if($file){
$image = $this->file($form->get('image')->getData());
$name = $this->uniqueId().'.'.$image->getFile()->guessExtension();
$image->getFile()->move('assets/uploads/mymarket',$name);
$mymarket->setImage($name);
}
$this->getDoctrine()->getManager()->flush();
return $this->redirectToRoute('mymarket_index');
}
return $this->render('admin/mymarket/edit.html.twig', [
'mymarket' => $mymarket,
'form' => $form->createView(),
]);
}
/**
* @Route("/kghyt87{id}478jhggt/", name="mymarket_delete", methods={"POST"})
* @param Request $request
* @param Mymarket $mymarket
* @return Response
*/
public function delete(Request $request, Mymarket $mymarket): Response
{
if ($this->isCsrfTokenValid('delete'.$mymarket->getId(), $request->request->get('_token'))) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->remove($mymarket);
$entityManager->flush();
}
return $this->redirectToRoute('mymarket_index');
}
/**
* Permet de rendre un id unique
*
* @return string
*/
private function uniqueId():string {
return md5(uniqid());
}
}