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 et jointure


Sujet :

Zend_Db PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 44
    Par défaut Zend_Db_Table et jointure
    Bonsoir,

    J'ai un petit souci avec Zend.
    Soient deux tables :
    - Groupe (idgroupe, nomgroupe)
    - Detail (iddetail, nomdetail, idgroupe)
    J'aimerais afficher, lorsque je liste Detail, le groupe correspondant à chaque ligne.
    J'ai donc une classe comme ceci :

    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
    <?php
    class Detail extends Zend_Db_Table
    {
    	protected function _setup()
        {
            $this->_primary = 'iddetail';
            parent::_setup();
        }
     
        public function fetchAll(){
        	Zend::loadClass('Groupe');
        	$ligne = parent::fetchAll();
        	$groupe = new Groupe();
        	$groupe->find($ligne->idgroupe);
        	$ligne->nomgroupe = $groupe->nomgroupe;
        	return $ligne;
    	}
    }
    Si je fais ça, j'ai un message d'erreur :
    Strict Standards: Declaration of Detail::fetchAll() should be compatible with that of Zend_Db_Table::fetchAll() in E:\...\application\models\Detail.php on line 28
    Ligne 28 : accolade de fin de ma méthode fetchAll()

    Notice: Undefined property: Zend_Db_Table_Rowset::$iddetail in E:\...\application\models\Detail.php on line 24
    Ligne 24 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $groupe->find($ligne->idgroupe);
    Notice: Undefined property: Groupe::$nomgroupe in E:\...\application\models\Detail.php on line 25
    Ligne 25 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ligne->nomgroupe = $groupe->nomgroupe;

  2. #2
    Invité
    Invité(e)
    Par défaut
    La méthode fetchAll() renvoie un Zend_Db_Table_Rowset, qui est un itérateur de Zend_Db_Table_Row; tu ne peux donc acceder aux propriétés directement, tu dois parcourir l'itérateur ( dans ton cas un $ligne->current()->idgroupe est plus approprié ).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    44
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 44
    Par défaut
    Merci beaucoup.

    Je vais tester ça.

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

Discussions similaires

  1. Jointure qui ne renvoie pas tous les enregistrements
    Par rayonx dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/07/2024, 09h33
  2. [ZF 1.7] Jointure avec Zend_Db_Table
    Par Caesarus dans le forum Zend_Db
    Réponses: 5
    Dernier message: 15/02/2011, 09h29
  3. Jointures en SQL
    Par Guizz dans le forum Langage SQL
    Réponses: 10
    Dernier message: 04/06/2003, 12h21
  4. Réponses: 14
    Dernier message: 17/03/2003, 18h31
  5. Jointures INNER et jointures classiques ???
    Par UbiK dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/09/2002, 10h29

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