Envoyer un array du controller vers une requête SQL dans le repository
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 :
Code:
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;
} |
REPOSITORY
Code:
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();
} |
Bien cordialement,
Alexandre