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 :

[1.0.2][Zend_db_table] Gérer les liaisons entre les tables


Sujet :

Zend_Db PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut [1.0.2][Zend_db_table] Gérer les liaisons entre les tables
    Bonjour,

    Je suis en train de me faire au fonctionnement du Zend Framework et j'arrive pas à me dépatouiller avec les liaisons entre les tables.

    J'ai une classe DemandeursLinks :

    Code PHP : 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
    19
    20
    21
    22
    23
    <?php
    	class DemandeursLinks extends Zend_Db_Table{
    	    protected $_name = 't_demandeurs_links';
     
    		protected $_referenceMap = array(
    			'demande' => array( 
    				'columns' => array('demande'),
    				'refTableClass' => 'Demandes', 
    				'refColumns' => 'id',
    			),
    			'demandeur' => array(
    				'columns' => array('demandeur'),
    				'refTableClass' => 'Demandeurs',
    				'refColumns' => 'id',
    			),
    			'role' => array(
    				'columns' => array('role'),
    				'refTableClass' => 'Roles',
    				'refColumns' => 'id',
    			)
    		);
    	}
    ?>

    les colonnes role, demandeur, demande de cette table contiennent les id pour les lier à d'autres tables gérées par les classes Roles, Demandeurs et Demandes. J'aimerais donc qu'au lieu de me renvoyer ces id, il me renvoie directement les objets en question qu'il va chercher dans l'autre classe, mais ce que j'ai fait dans la classe ne marche pas...

    Quand j'essaie de faire :

    Il me dit :

    Trying to get property of non-object in ...
    Je ne sais pas vraiment comment récupérer ça...

    Est-ce qu'au moins ce que je veux faire est possible ? Et si oui comment ?

    Merci beaucoup

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 679
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 679
    Par défaut
    c'est possible mais ce que je vais te proposer n'a rien à voir avec Zend

    tu as la méthode magique "__get" qui permet de gérer le cas où l'attribut n'existe pas
    regarde là :
    http://php.net/oop5.overloading

  3. #3
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Donc, il faudrait que je surcharge la méthode get pour pouvoir récupérer mes membres de façon différente.

    Le problème c'est que je n'ai pas d'objet DemandeurLink, je reprend directement l'objet que Zend me renvoie. En plus, il me semble quand même que c'est un peu comme utiliser un marteau pour tuer une mouche... Il n'y a rien de plus simple pour faire cela avec Zend ?

  4. #4
    Membre très actif
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut
    Tu as essayé setFetchMode(Zend_Db::FETCH_OBJ); ?

  5. #5
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par SQUAL Voir le message
    Tu as essayé setFetchMode(Zend_Db::FETCH_OBJ); ?
    Je viens d'essayer sur mon objet Zend_Db et ça ne change rien.

  6. #6
    Membre très actif
    Inscrit en
    Juillet 2002
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 190
    Par défaut
    Et ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $link->role["name"];

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

Discussions similaires

  1. Ignorer les liaisons entre les classeurs "sheets links"
    Par LANGAZOU dans le forum VBA Project
    Réponses: 0
    Dernier message: 16/06/2015, 14h30
  2. [XL-2007] Couper les liaisons entre les sources de données et leurs graphique en VBA
    Par mah.ngaz dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/04/2013, 19h05
  3. [Lazarus] SGBD, tables liées, SQLDB, comment créer les liaisons entre ces tables
    Par thierrybo dans le forum Lazarus
    Réponses: 3
    Dernier message: 23/03/2010, 07h55
  4. [Conception] Aide pour les liaison entre 2 table
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 02/09/2006, 13h03

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