Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-03-2009 10:12:25

Devether
Membre
Date d'inscription: 23-01-2009
Messages: 21

[Résolu]Relation qui ne fonctionne pas

Bonjour,

J'ai deux tables `agents` et `users`. Pour l'explication les agents viennent d'une autre application et les users sont ceux qui se connectent au site. Ma relation permet de lier les deux sachant qu'un user n'a pas forcément d'agent associé.

Relation assez basic puisqu'il y a une clé étrangère `users`.`agentid` faisant référence à `agents`.`AGENTID`.

Mes classes

Code:

<?php
class Users extends Zend_Db_Table
{
    protected $_name = 'users';
    protected $_primary = 'id';
    
    
    protected $_referenceMap    = array(
    'Correspond' => array( 
            'columns'           => array('AGENTID'), 
            'refTableClass'     => 'Agents', 
            'refColumns'        => array('agentid')
    ));
    
}

Code:

<?php
class Agents extends Zend_Db_Table
{
    protected $_name = 'agents';
    protected $_primary = 'AGENTID';
    
    protected $_dependentTables = array('Users');
}

Quand je fais un requête du type

Code:

$tableUsers = new Users();
$users = $tableUsers->fetchAll();
$users->current()->findParentRow('Agents');

J'obtiens ce message d'erreur :

Code:

exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound' in D:\Mes Documents\Mes Projets\PHP\libraries\Zend Framework Home\Zend\Db\Statement\Pdo.php:238
Stack trace:
#0 D:\Mes Documents\Mes Projets\PHP\libraries\Zend Framework Home\Zend\Db\Statement.php(303): Zend_Db_Statement_Pdo->_execute(Array)
#1 D:\Mes Documents\Mes Projets\PHP\libraries\Zend Framework Home\Zend\Db\Adapter\Abstract.php(433): Zend_Db_Statement->execute(Array)
#2 D:\Mes Documents\Mes Projets\PHP\libraries\Zend Framework Home\Zend\Db\Adapter\Pdo\Abstract.php(230): Zend_Db_Adapter_Abstract->query(Object(Zend_Db_Table_Select), Array)
#3 D:\Mes Documents\Mes Projets\PHP\libraries\Zend Framework Home\Zend\Db\Table\Abstract.php(1330): Zend_Db_Adapter_Pdo_Abstract->query(Object(Zend_Db_Table_Select))
#4 D:\Mes Documents\Mes Projets\PHP\libraries\Zend Framework Home\Zend\Db\Table\Abstract.php(1200): Zend_Db_Table_Abstract->_fetch(Object(Zend_Db_Table_Select))
#5 D:\Mes Documents\Mes Projets\PHP\libraries\Zend Framework Home\Zend\Db\Table\Row\Abstract.php(948): Zend_Db_Table_Abstract->fetchRow(Object(Zend_Db_Table_Select))
#6 D:\Mes Documents\Mes Projets\PHP\isa\application\modules\administration\controllers\UtilisateursController.php(41): Zend_Db_Table_Row_Abstract->findParentRow('Agents')
#7 D:\Mes Documents\Mes Projets\PHP\libraries\Zend Framework Home\Zend\Controller\Action.php(503): Administration_UtilisateursController->listeAction()
#8 D:\Mes Documents\Mes Projets\PHP\libraries\Zend Framework Home\Zend\Controller\Dispatcher\Standard.php(285): Zend_Controller_Action->dispatch('listeAction')
#9 D:\Mes Documents\Mes Projets\PHP\libraries\Zend Framework Home\Zend\Controller\Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#10 D:\Mes Documents\Mes Projets\PHP\isa\public\index.php(48): Zend_Controller_Front->dispatch()
#11 {main}

J'ai fais d'autres relations dans mon projet qui m'ont l'air identiques du point de vu conceptuel et qui fonctionnent très bien. Alors soit ça fait trop longtemps que je suis sur mon projet et je n'ai plus les yeux en face des trous, soit il y a un truc que je n'ai pas compris.

Merci de votre aide.

Dernière modification par Devether (13-03-2009 01:23:53)

Hors ligne

 

#2 12-03-2009 21:32:35

Intiilapa
Membre
Date d'inscription: 03-02-2009
Messages: 95

Re: [Résolu]Relation qui ne fonctionne pas

Relis bien la doc, tu as mal compris la documentation.

columns appartient à la classe users et non agents donc c'est la colonne agentid. Du coup, AGENTID est la veleur de refColumns.

Hors ligne

 

#3 13-03-2009 01:23:28

Devether
Membre
Date d'inscription: 23-01-2009
Messages: 21

Re: [Résolu]Relation qui ne fonctionne pas

Purée j'ai du faire un effort surhumain pour arriver à comprendre le sens des relations.

Et en effet j'avais inversé le deux colonnes.

Merci beaucoup
++

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