Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 06-02-2010 22:48:57

lil-works
Membre
Date d'inscription: 10-09-2009
Messages: 40

Zend_Db_Table_Row_Abstract Avec des tables dépendentes

Bonjour à tous...

Je tourne en rond depuis plusieurs jours... Je m'explique...
Je croyais avoir trouvé la bonne solution pour acceder facilement aux données liées qui m'interessaient

Exemple avec une table articles et marques, un identifiant marque_id pointant vers un id dans la table marque. Jusque là pas de probleme!

Donc pour que cela soir fait de maniere systematique j'ai personnaliser la classe articles avec:
protected $_rowClass = 'App_Model_DbTable_Articles_Row';

Code:

class App_Model_DbTable_Articles_Row
extends Zend_Db_Table_Row_Abstract
{
   
    public $_marque;

    public function init()
    {
        $this->_marque          = $this->findParentRow('App_Model_DbTable_Articles_Marques'     , 'articles_marques');
  
        parent::init();
    }
   
}

Cependant dans ce cas je ne peux plus inserer de nouveau enregistrement via mes formulaire j'obtiens:
Message: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound

Je supose que c'est parceque la classe s'attend à ce que je lui fournisse ce parametre _marque...


Ma question est la suivante:

Ou dois-je definir _marque pour que celui ci ne soit pris en compte que lors de la lecture du Row?

Merci à tous et bon week-end

Hors ligne

 

#2 07-02-2010 18:49:45

lil-works
Membre
Date d'inscription: 10-09-2009
Messages: 40

Re: Zend_Db_Table_Row_Abstract Avec des tables dépendentes

Je me repond tout seul...

Il suffit de personaliser une classe rowset

Code:

/*
 * App_Model_DbTable_Articles_Row
 * Personalise l'objet Row du model Articles
 */
class App_Model_DbTable_Articles_Rowset
extends Zend_Db_Table_Rowset_Abstract
{

    public function current(){
        $row = parent::current();

        $row->_marque          = $row->findParentRow('App_Model_DbTable_Articles_Marques'     , 'articles_marques');
        return $row;
    }

 
}

Sans oublié de definir _marque dans la classe Row personalisée

Code:

class App_Model_DbTable_Articles_Row
extends Zend_Db_Table_Row_Abstract
{
    public $_marque;           # Row marque
 }

Et voila le tour est joué

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