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 :

Persistant collection, get element by ID [2.x]


Sujet :

Symfony PHP

  1. #1
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut Persistant collection, get element by ID
    Bonjour.

    Pour chacun de mes utilisateurs, j'ai une liste de service disponible.
    pour chacun de ses services, j'ai un ID, qui m'est envoyé lorsque j'ouvre une page concernant ce service.

    Je voudrais donc vérifier que le service fait partie de la lsite de service de l'utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if($this->get('security.context')->getToken()->getUser()->getServices()->containsKey($service_id)){
    Ca me paraissait assez logique, mais "key" n'est pas l'id.

    Je voudrais donc savoir si il y a un moyen de tester l'existence dans une "Persistant Collection" d'un element en donnant l'ID de celui ci.

    Merci,
    Pierre

  2. #2
    Invité
    Invité(e)
    Par défaut


    A mon avis le moyen le plus efficace est d'instancier ton service grâce à son ID et d'utiliser la méthode contains() de la Collection

  3. #3
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    Bonjour,

    Pour toi, j'ai juste besoin de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $service = new Service();
    $service->setId("1");
    if($this->get('security.context')->getToken()->getUser()->getServices()->contains($service)){
      //code
    }
    C'est cela ?

    Merci,
    Pierre

  4. #4
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    En fait, loe code était correct depuis le début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if($this->get('security.context')->getToken()->getUser()->getServices()->containsKey($service_id)){
    Par contre, dans la relation manyToMany(annotation ou yml file) on doit définir indexBy=id pour qu'il utilise la clef primaire comme index...
    Bizarre que doctrine ne le fasse pas par defaut dailleur...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Par contre ce que je suggérais était différent, je proposais d'instancier ton Service à partir de Doctrine (ou de ton provider de Service), pas avec un new... Evidemment avec un objet tout juste créé, ça ne fonctionne pas... Bref je ne connaissais pas cette option de Doctrine, bien vu !

  6. #6
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    En fait, je pouvais faire un findById, mais ca voulait dire ajouter 1 requete SQL, ce que je préfère limiter au maximum.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Get element by tag AND type
    Par Eric5031 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 18/03/2015, 02h15
  2. Get Element By ID
    Par Mrezechiel dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 01/04/2010, 16h37
  3. document get element by class
    Par knebhi dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/01/2010, 17h14
  4. enregistrer une collections d'elements
    Par Msysteme dans le forum C#
    Réponses: 0
    Dernier message: 17/03/2009, 13h56
  5. get Element By ->
    Par BernardT dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 06/06/2006, 15h37

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