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

Zend_Db PHP Discussion :

Zend_Db_Table_Row vers un objet d'une classe modèle


Sujet :

Zend_Db PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Par défaut Zend_Db_Table_Row vers un objet d'une classe modèle
    Bonjour à tous,

    Je débute avec le Zend Framework et je suis devant un problème que je ne parviens pas à résoudre.

    Mes classes modèles étendent la classe "Zend_Db_Table".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class Section extends Zend_Db_Table {
        protected $_name = 'section';
        protected $_primary = 'id';
        ...
    }
    Pour trouver une section sur base de son id, j'utilise les méthodes suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $s = $section->find($sid)->current();
    ce qui me retourne un objet "Zend_Db_Table_Row"

    J'aimerais transformer cet objet "Zend_Db_Table_Row" en object "Section" pour pouvoir appliquer sur cet objet une fonction définie dans ma classe "Section".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $a = $section->find($sid)->current();
    $p = $a->getParents();
    Ma fonction getParents() est définie dans ma classe "Section".
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public function getParents() {}
    Mais lorsque j'exécute ce code je reçois comme message d'erreur :
    Unrecognized method 'getParents()'
    Comment faire pour résoudre ce problème ?

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    qu'est-ce qui t'empêche de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $p = $section->getParents($a);
    ?
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Par défaut
    Ma fonction getParents() retourne les parents d'une section.

    Il me semble plus logique de créer un objet Section et de lui appliquer la fonction getParents().

    Dans le code que j'ai mis j'ai oublié le "new section()" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $section = new Section();
    $a = $section->find($sid)->current();
    $p = $a->getParents();
    Ce que je souhaite faire, c'est créer un objet section à partir de son identifiant (le reste des données étant récupérées de la DB) et d'appliquer sur cet objet section la fonction getParents().

    Merci pour ton aide

  4. #4
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Citation Envoyé par jbelien Voir le message
    Il me semble plus logique de créer un objet Section et de lui appliquer la fonction getParents().
    C'est bien ce que je te propose de faire.

    Tu ne peux pas transformer un Zend_Db_Table_Row en Zend_Db_Table, ça n'est pas possible et ça n'aurait de toute façon pas de sens. Il te suffit juste de modifier la méthode getParents() pour qu'elle prenne en paramètre un objet Zend_Db_Table_Row, une section dont elle va renvoyer les parents.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Par défaut
    Citation Envoyé par GrandFather Voir le message
    Tu ne peux pas transformer un Zend_Db_Table_Row en Zend_Db_Table, ça n'est pas possible et ça n'aurait de toute façon pas de sens.
    C'est vrai que tout bien réfléchi, ça n'a pas de sens !
    Je vais faire comme ça, merci beaucoup

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Par défaut
    Mon problème est résolu mais il y a quand même quelquechose que je ne comprends pas.

    Dans ce cas-ci qu'elle est la différence entre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $s = new Section();
    $a = $section->find($sid)->current();
    $p = $s->getParents($a);
    et une fonction statique ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $s = new Section();
    $a = $section->find($sid)->current();
    $p = Section::getParents($a);
    Merci

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

Discussions similaires

  1. Réponses: 12
    Dernier message: 30/06/2006, 16h46
  2. Réponses: 6
    Dernier message: 21/05/2006, 20h37
  3. [POO] import d'objet dans une classe
    Par wdionysos dans le forum Langage
    Réponses: 3
    Dernier message: 01/04/2006, 21h05
  4. Réponses: 4
    Dernier message: 08/03/2006, 19h07
  5. Réponses: 19
    Dernier message: 02/02/2006, 23h30

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