IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Envoyer un array du controller vers une requête SQL dans le repository


Sujet :

Symfony PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2022
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2022
    Messages : 51
    Points : 25
    Points
    25
    Par défaut 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 : 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;
      }
    REPOSITORY
    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();
      }
    Bien cordialement,
    Alexandre

  2. #2
    Membre régulier
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2013
    Messages : 71
    Points : 84
    Points
    84
    Par défaut
    Bonjour,

    j'espère que vous avez trouvé une solution depuis le temps

    Dans votre controleur, vous faites :
    $arr = explode(',', $category);
    var_dump($arr);

    $product = $productRepository->findByProduct($category); // $name = eaux

    Par contre, vous n'utilisez plus $arr. A mon avis, vous feriez-mieux de passer $arr en paramètre plutôt que $category :
    $product = $productRepository->findByProduct($arr); // $name = eaux

    Je suppose qu'ensuite, dans votre repository, vous pourrez accéder à l'attribut Name ainsi $arr['Name']. Tout dépend de la construction de votre chaine initiale bien sûr, le var_dump vous l'indiquera.

Discussions similaires

  1. Envoyer par GET un tableau d'une requête SQL
    Par xess91 dans le forum Langage
    Réponses: 17
    Dernier message: 21/05/2010, 10h08
  2. Comment stocker une requête sql dans une variable ?
    Par innova dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 26/10/2006, 10h01
  3. Récupérer la valeur des champs calculés dans une requète SQL dans vba
    Par FrédéricCM dans le forum Requêtes et SQL.
    Réponses: 12
    Dernier message: 28/06/2006, 16h29
  4. [MySQL] Passer une requête SQL dans un tableau
    Par phpaide dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/05/2006, 11h09
  5. récupérer le résultat d'une requête sql dans un edit
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/07/2005, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo