Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework > Zend_Db
Zend_Db Forum d'entraide pour le composant Zend_Db du Zend Framework (création de requêtes, abstraction, ORM etc.). Avant de poster -> FAQ Zend_Db.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/11/2006, 21h11   #1
Futur Membre du Club
 
Benjamin Dauvissat
Inscription : octobre 2002
Messages : 44
Détails du profil
Informations personnelles :
Nom : Benjamin Dauvissat
Âge : 34

Informations forums :
Inscription : octobre 2002
Messages : 44
Points : 16
Points : 16
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 :
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 :
$groupe->find($ligne->idgroupe);
Notice: Undefined property: Groupe::$nomgroupe in E:\...\application\models\Detail.php on line 25
Ligne 25 :
Code :
$ligne->nomgroupe = $groupe->nomgroupe;
Oz-WereWolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 21h24   #2
Rédacteur
 
Avatar de doctorrock
 
Homme Julien Pauli
Architecte de système d'information
Inscription : mai 2006
Messages : 597
Détails du profil
Informations personnelles :
Nom : Homme Julien Pauli
Âge : 29
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Architecte de système d'information
Secteur : High Tech - Produits et services télécom et Internet

Informations forums :
Inscription : mai 2006
Messages : 597
Points : 5 015
Points : 5 015
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é ).
doctorrock est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2006, 22h39   #3
Futur Membre du Club
 
Benjamin Dauvissat
Inscription : octobre 2002
Messages : 44
Détails du profil
Informations personnelles :
Nom : Benjamin Dauvissat
Âge : 34

Informations forums :
Inscription : octobre 2002
Messages : 44
Points : 16
Points : 16
Merci beaucoup.

Je vais tester ça.
Oz-WereWolf est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h08.


 
 
 
 
Partenaires

Hébergement Web