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 :

Object of class Invitation could not be converted to int in [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 212
    Points : 108
    Points
    108
    Par défaut Object of class Invitation could not be converted to int in
    Bonjour,


    je récupère un champs depuis dans ma table invitation (int) avec la fonction isRecalled et je test la valeur pour afficher le gif qui correspond au cas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $invit->isRecalled($contributor->getId()) != 0 )
    seuleement le récupérer toujours 0 (valeur par défaut) et j' ai l' erreur suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Object of class Invitation could not be converted to int in
    Voici le code la fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     public function isRecalled($id)
      {
     
          $q = $this->createQuery('i')
          ->select('i.is_recalled')
          ->where('i.contributor_id = ?', $id );
     
        return $q->fetchOne();
        #return $q->setHydrationMode(Doctrine::HYDRATE_ARRAY)->execute();
     
     
     
      }

  2. #2
    Membre confirmé
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 453
    Points
    453
    Par défaut
    La methode fetchOne renvoit un int ?
    Keep it simple, stupid !

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 212
    Points : 108
    Points
    108
    Par défaut
    oui c' est parce qu 'il y le if juste avant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <?php if ( $invit->isRecalled($contributor->getId()) == 0  ): ?>

  4. #4
    Membre confirmé
    Avatar de Tesing
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    272
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2009
    Messages : 272
    Points : 453
    Points
    453
    Par défaut
    J'ai édité mon précédent message en pensant que tu ne le lirais pas.
    Peux tu t'assurer que la méthode fetchOne appelée dans isRecalled et qui donne la valeur de retour de cette dernière est bien du type int. A vue de nez je dirais qu'elle renvoie un objet de la classe Invitation. D'où l'erreur.
    Keep it simple, stupid !

  5. #5
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Je ne pense pas que fechtone retourne un integer, de mes souvenirs, il retourne un enregistrement (même si plusieurs auraient pût correspondre).

    Il convient donc de récupérer le champs.

    Ta fonction pourrait alors ressembler à ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public function isRecalled($id)
    {
       $r = $this->findOneById( $id );
       return $r->getIsRecalled;
    }
    Attention, utilisé dans une liste, cette fonction risque de générer de nombreuses requêtes.
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 212
    Points : 108
    Points
    108
    Par défaut
    Ben en fait c 'est bizarre dans le débugger malgré mon select précis sur le champs dans ma fonction je récupère l' id de l' enregistrement également.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT i.id AS i__id, i.is_recalled AS i__is_recalled FROM invitation i WHERE (i.contributor_id = '4')

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 212
    Points : 108
    Points
    108
    Par défaut
    avec une petite correction cela passe nikel.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
      $r = $this->findOneByContributorId($id);
          return $r->getIsRecalled();

    Et j' ai 10 requêtes pour 3 enregistrements dans ma liste comme avant.

    Merci michel..

  8. #8
    Expert éminent
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Points : 8 486
    Points
    8 486
    Par défaut
    Faut voir, avec ta liste, si tu ne peux pas tous récupérer en une fois. Et essayer de descendre à 3 ou mieux 2 requêtes...
    Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).

    • Pensez à valoriser les réponses pertinantes, cliquez sur le bouton vert +1 pour indiquer votre accord avec la solution proposée.
    • Pensez à utiliser la balise [code] pour afficher du code, elle est cachée sous le bouton [#] dans l'éditeur.
    • Une discussion est terminée ? Alors le bouton est votre ami !

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 212
    Points : 108
    Points
    108
    Par défaut
    ma liste récupère une collection de résultats avec certains champs de cette collection qui sont récupérés ou calculés à partir d' autre tables.

    Par exemple : Dans la liste des contributeurs :

    J' ai une colonne "répondu" et "relancé" qui est récupéré dans des tables différentes.

    Cette liste ne dépassera 10 lignes donc le cout en performance est acceptable.

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

Discussions similaires

  1. [ZF 1.11] Notice: Object of class My_Acl could not be converted to int
    Par ben.p dans le forum Zend_Acl & Zend_Auth
    Réponses: 4
    Dernier message: 15/07/2011, 00h00
  2. [PEAR][MDB2] Notice: Object of class MDB2_Error could not be converted to int
    Par julio69 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 29/04/2010, 00h20
  3. Réponses: 2
    Dernier message: 14/02/2008, 17h21
  4. Réponses: 1
    Dernier message: 14/01/2008, 17h41
  5. [PEAR] Sigma: "Object of class PEAR_Error could not be converted to string"
    Par onet dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 04/09/2007, 14h31

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