Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 26-02-2008 18:50:21

nicolas.pied
Nouveau membre
Date d'inscription: 20-02-2008
Messages: 3

[ORM] Besoin d'aide sur le Full Loading

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 :

Code:

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 :

Code:

<?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 :

Code:

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" :

Code:

$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

 

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