Bonjour à tous,
Je suis coincer, pourriez vous m'aider ?
Problème : Je récupère une chaine de caractère ($category) dans mon API que j'EXPLODE ensuite je veux renvoyer ce tableau ($arr) dans ma requête SQL qui se situe dans mon repository pour ensuite faire une comparaison avec la nom du produit en bdd et ceux qui sont le tableaux.
Je vous joint mon code :
CONTROLLER :
REPOSITORY
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 /** * @Route("/api/products/liste/{category}", methods={"GET"}) */ public function getByProduct($category, ProductRepository $productRepository, HttpClientInterface $httpClient ) { // var_dump($category); $response = new Response(); $response->headers->set('Content-Type', 'application/json'); $response->headers->set('Access-Control-Allow-Origin', '*'); $arr = explode(',', $category); var_dump($arr); $product = $productRepository->findByProduct($category); // $name = eaux $encoders = [new XmlEncoder(), new JsonEncoder()]; $normalizers = [new ObjectNormalizer()]; $serializer = new Serializer($normalizers, $encoders); $jsonContent = $serializer->serialize($product, 'json'); $response->setContent($jsonContent); return $response; }
Bien cordialement,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 public function findByProduct($name) { return $this->createQueryBuilder('p') ->select("p, partial c.{id, name}") ->leftJoin('p.company', 'c') ->andWhere('p.name LIKE :name') ->setParameter('name', $name) ->getQuery() ->getArrayResult(); }
Alexandre
Partager