Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-12-2008 11:07:27

Kaimite
Membre
Lieu: Marseille
Date d'inscription: 16-06-2008
Messages: 144
Site web

[1.7] Relation 1 to many et Cannot save a Row unless it is connected

Bonjour,

Je suis en train de regarder les relations entre les tables et j'ai quelques soucis quand j'utilise un cache.

J'ai suivi quelques tutos sur le net et mes models de tables sont séparés en 2 tables :

Marques.php

Code:

<?php

class Marques extends Kaimite_Db_Table_Abstract 
{
    protected $_name         = "marques";
    protected $_rowClass     = "Marque";
    protected $_nomCache    = "marque";
}

et Marque.php

Code:

<?php

class Marque extends Kaimite_Db_Table_Row_Abstract
{
    public function renvoyerModeles () {
        return $this -> findDependentRowset('Modeles');
    }
}

Et la table avec la reference

Code:

class Modeles extends Kaimite_Db_Table_Abstract 
{

    protected $_name         = "modeles";
    protected $_rowClass     = "Modele";
    protected $_nomCache    = "marque";
    protected $_referenceMap = array(    'Marque' => array(    "columns"         => "id_marque",
                                                            "refTableClass"    => "Marques",
                                                            "refColumns"     => "id_marque"
                                                        )
                                    );
}

Et voici le code de mes classes :

Code:

<?php
class Kaimite_Db_Table_Abstract extends Zend_Db_Table_Abstract 
{

    protected $_rowsetClass  = 'Kaimite_Db_Table_Rowset';
    
    public function renvoyerEnregistrement($uid) {        
        $row = Kaimite_Cache::get($this -> _nomCache . $uid);
        
        //--> Si le cache n'existe pas on le créé
        if ( !$row ) {
            $row = $this -> find($uid) -> current();
            if ( !empty($row) ) {
                Kaimite_Cache::set($row, $this -> _nomCache . $uid);
            } else {
                throw new Kaimite_Exception("Aucun enregistrement de la table <b>" . $this -> _name . "</b> ne correpond à l'ID <b>" . $uid . "</b>");
            }
        }
        
        return $row;
    }
}

Quand j'utilise la cache de la méthode renvoyerEnregistrement($uid) j'obtiens le message d'erreur suivant :
Cannot save a Row unless it is connected

Sinon cela fonctionne très bien smile

J'ai également remarqué que lorsque je fait un print_r() du retour de cette fonction il manque bcp d'informations une fois que la version de cache est utilisés sad

Pour mon cache j'utilise une class issue du livre "Zend Framework - Bien développer en PHP".

Si vous avez une idée je suis preneur smile

Merci à vous !

Cordialement,
Kaimite

Dernière modification par Kaimite (26-12-2008 11:08:26)

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