Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je suis en train d'essayer le full loading sous ZF, mais impossible de récupérer les lignes enfants associées. J'ai les deux tables suivantes :
CREATE TABLE `renderer`( ID_RENDERER INT NOT NULL AUTO_INCREMENT, LB_NAME VARCHAR(150) NOT NULL, LB_CONTROLLER VARCHAR(50) NOT NULL, LB_VIEW VARCHAR(50) NOT NULL, PRIMARY KEY (ID_RENDERER) ) CHARACTER SET utf8 COLLATE utf8_unicode_ci; CREATE TABLE `page` ( `ID_PAGE` int(11) NOT NULL auto_increment, `ID_RENDERER` int(11) NOT NULL, `LB_NAME` varchar(150) collate utf8_unicode_ci NOT NULL, PRIMARY KEY (`ID_PAGE`), FOREIGN KEY (ID_RENDERER) REFERENCES CLR_RENDERER (ID_RENDERER) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Avec les deux modèles correspondants suivants :
<?php class Renderer extends Zend_Db_Table { protected $_name = 'renderer'; public $ID_RENDERER; public $LB_NAME; public $LB_CONTROLLER; public $LB_VIEW; } ?> <?php class Page extends FullLoadingModel { protected $_name = 'page'; protected $_relations = array ( "ID_RENDERER" => "Renderer", ); // Full loading public $ID_PAGE; public $ID_PARENTSECTION; public $ID_RENDERER; public $LB_NAME; } ?>
La classe FullLoadingModel correspond à la classe FullModel du tutoriel présent à l'adresse : http://baptiste-wicht.developpez.com/tu … l-loading/
J'ai uniquement modifié les deux premières lignes de la méthode _fetch de cette dernière classe par :
protected function _fetch(Zend_Db_Table_Select $select) { $rows = parent::_fetch($select); // ...
Ceci afin d'être compatible avec les dernières versions de ZF.
Mais je ne comprends pas pourquoi le code ci-dessous ne permet pas de récuperer la ligne associée de la table "renderer" :
$pages = new Page(); $page = $pages->find(1)->current(); echo $page->ID_RENDERER->LB_NAME;
Si vous avez une idée ou une solution, elle serait la bienvenue !
Merci bien.
Hors ligne