Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-01-2008 09:52:34

ppeyre
Membre
Lieu: Toulouse
Date d'inscription: 28-11-2007
Messages: 12
Site web

[Résolu][Zend_Db_Table][1.0.3] Problème dans la Gestion des relations.

Bonjour,

J'adapte un de mes vieux projets au Zend Framework.

L'architecture de mon projet est la suivante :

<monProjet>
     +------Librairies
          +-----modele
               +-----Salarie.php
               +-----Societe.php
          +-----Zend // c'est le Zend Framework

Je charge le ZF à partir de mon bootstrap de la manière suivante

set_include_path(get_include_path().PATH_SEPARATOR."./libraries");
require_once('Zend/Loader.php');
Zend_Loader::registerAutoload();


Salarie.php :
---------------

<?php

/**
* Classe modele_salarie
*/

class modele_Salarie extends Zend_Db_Table {
   
    /**
     * Nom de la Table
     *
     * @var string
     */
    protected $_name    =    "t_salarie";
    /**
     * Clé Primaire de la Table
     *
     * @var string
     */
    protected $_primary =   array("id_salarie");
   
    /**
     * Relations
     */
    protected $_referenceMap = array(
    'SalarieDeSociete' =>  array(// Role
      'columns'        =>  array('id_societe'),
      'refTableClass'  =>  array('modele_Societe'),
      'refColumns'     =>  array('id_societe')
    ));
}


Societe.php :
---------------

<?php

/**
* Classe modele_societe
*/

class modele_Societe extends Zend_Db_Table {
   
    /**
     * Nom de la Table
     *
     * @var string
     */
    protected $_name    =    "t_societe";
    /**
     * Clé Primaire de la Table
     *
     * @var string
     */
    protected $_primary =   "id_societe";

}




Au sein de mon programme, j'essaie de récupérer le libellé du Salarié :

$TSalarie = new modele_Salarie();
$salarie = $TSalarie->find($_GET['id_salarie'])->current();
echo $salarie->findParentmodele_Societe()->libelle;

Hélas, l'erreur suivante s'affiche :

Fatal error: Uncaught exception 'Zend_Db_Table_Exception' with message 'No reference from table modele_Salarie to table modele_Societe' in C:\wamp\www\projet\libraries\Zend\Db\Table\Abstract.php:343 Stack trace: #0 C:\wamp\www\projet\libraries\Zend\Db\Table\Row\Abstract.php(670): Zend_Db_Table_Abstract->getReference('modele_Societe', NULL) #1 C:\wamp\www\projet\libraries\Zend\Db\Table\Row\Abstract.php(758): Zend_Db_Table_Row_Abstract->_prepareReference(Object(modele_Salarie), Object(modele_Societe), NULL) #2 C:\wamp\www\projet\libraries\Zend\Db\Table\Row\Abstract.php(892): Zend_Db_Table_Row_Abstract->findParentRow('modele_Societe', NULL) #3 [internal function]: Zend_Db_Table_Row_Abstract->__call('findParentmodel...', Array) #4 C:\wamp\www\projet\fiche_salarie.php(61): Zend_Db_Table_Row->findParentmodele_Societe() #5 {main} thrown in C:\wamp\www\projet\libraries\Zend\Db\Table\Abstract.php on line 343

J'ai bien défini la référence. Je ne comprends pas pourquoi il ne la voit pas.
Quelqu'un a-t-il une idée de mon erreur ?

Merci de votre aide.

Pascal PEYRE.

Dernière modification par ppeyre (08-01-2008 15:23:25)

Hors ligne

 

#2 08-01-2008 12:33:45

Seb
Membre
Lieu: Thuin (Belgique)
Date d'inscription: 19-11-2007
Messages: 62
Site web

Re: [Résolu][Zend_Db_Table][1.0.3] Problème dans la Gestion des relations.

Je t 'invite à lire ceci

Il ne manquerait pas la dépendance dans modele_societe ?

Code:

protected $_dependentTables = array('Salarie');

Sébastien Bervoets

Hors ligne

 

#3 08-01-2008 14:54:19

ppeyre
Membre
Lieu: Toulouse
Date d'inscription: 28-11-2007
Messages: 12
Site web

Re: [Résolu][Zend_Db_Table][1.0.3] Problème dans la Gestion des relations.

Je viens de rajouter dans Societe.php la ligne suivante mais le problème demeure :

Code:

 protected $_dependentTables = array('modele_Salarie');

Dernière modification par ppeyre (08-01-2008 14:55:15)

Hors ligne

 

#4 08-01-2008 15:03:44

Seb
Membre
Lieu: Thuin (Belgique)
Date d'inscription: 19-11-2007
Messages: 62
Site web

Re: [Résolu][Zend_Db_Table][1.0.3] Problème dans la Gestion des relations.

Et tu as essayé ce que j'ai t'ai proposé ?


Sébastien Bervoets

Hors ligne

 

#5 08-01-2008 15:26:27

ppeyre
Membre
Lieu: Toulouse
Date d'inscription: 28-11-2007
Messages: 12
Site web

Re: [Résolu][Zend_Db_Table][1.0.3] Problème dans la Gestion des relations.

J'ai enfin trouvé la cause de mon problème.
En fait,  RefTableClass ne peut accepter un tableau en parametres, il faut donc mettre le nom de la Classe directement. J'avais pris la mauvaise habitude de mettre array() à force d'utiliser le zend Framework. wink

Code:

Salarie.php :
---------------

<?php

/**
* Classe modele_salarie
*/

class modele_Salarie extends Zend_Db_Table {
    
    /**
     * Nom de la Table
     *
     * @var string
     */
    protected $_name    =    "t_salarie";
    /**
     * Clé Primaire de la Table
     *
     * @var string
     */
    protected $_primary =   array("id_salarie");
    
    /**
     * Relations
     */
    protected $_referenceMap = array(
    'SalarieDeSociete' =>  array(// Role
      'columns'        =>  array('id_societe'),
      'refTableClass'  =>  'modele_Societe',
      'refColumns'     =>  array('id_societe') 
    ));
}

Dernière modification par ppeyre (08-01-2008 15:27:18)

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages