Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
<?php class Marques extends Kaimite_Db_Table_Abstract { protected $_name = "marques"; protected $_rowClass = "Marque"; protected $_nomCache = "marque"; }
et Marque.php
<?php class Marque extends Kaimite_Db_Table_Row_Abstract { public function renvoyerModeles () { return $this -> findDependentRowset('Modeles'); } }
Et la table avec la reference
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 :
<?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
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
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
Merci à vous !
Cordialement,
Kaimite
Dernière modification par Kaimite (26-12-2008 11:08:26)
Hors ligne
Pages: 1