Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 10-03-2008 18:07:23

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

[Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

Je suis en train de parcourir le tutorial sur le fullloading :
http://baptiste-wicht.developpez.com/tu … l-loading/
et je me demandais si on peut mettre en place du full loading avec plusieurs enregistrements liés a un enregistrement (du genre une entete de commande et des lignes de commande).
J'avoue que j'ai juste parcouru, je n'ai pas encore tout lu...
Etant un peu préssé, j'aimerais savoir avant de me plonger dedans si quelqu'un a déjà mis en place le full loading avec ce genre liaisons ?

Dernière modification par bertra (10-03-2008 18:07:59)

Hors ligne

 

#2 25-03-2008 12:05:22

bertra
Membre
Date d'inscription: 06-02-2008
Messages: 130

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

Je reviens sur le Full Loading.
Est ce que la méthode décrite dans le tutoriel est toujours d'actualité ?
J'entends par la : Est ce que ces fonctionnalités ne sont pas implémentées dans les nouvelles versions du ZF ?

Hors ligne

 

#3 28-03-2008 21:24:46

JuTs
Membre
Date d'inscription: 07-03-2008
Messages: 63

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

Salut

Apparemment certaines choses ont changés depuis la publication de ce tutorial.

La fonction _fetch a été remplacée par la fonction fetchAll.
Et en plus elle ne retourne plus un tableau mais un rowSet, ce qui fait que la condition

Code:

if($this->hasRelations() && is_array($rows) && !empty($rows))

ne sera jamais remplie.

Je suis en train d'essayer d'adapter la solution expliqué dans le tuto, on verra si j'y parviens


Julien

Hors ligne

 

#4 28-03-2008 22:41:30

JuTs
Membre
Date d'inscription: 07-03-2008
Messages: 63

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

J'ai trouvé un autre tuto intéressant : http://julien-pauli.developpez.com/tuto … l-loading/


Julien

Hors ligne

 

#5 20-05-2008 11:09:55

fblutch
Membre
Date d'inscription: 15-09-2007
Messages: 30

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

JuTs tu as pas su resoudre le probleme ? car j'utiliser le 1er tuto moi pour mon site, et c'etait bien pratique pour obtenir les données liée par une relation smile

car en s'moment, j'viens de mettre a jour en 1.5 et ça me donne :

Strict Standards: Declaration of FullModel::_fetch() should be compatible with that of Zend_Db_Table_Abstract::_fetch() in C:\wamp\www\over-book.com\application\models\FullModel.php on line 33

et étrangement le site marche toujours et je peux encore utilisé $object->id_relation->madonnéelié !

Hors ligne

 

#6 20-05-2008 12:32:54

JuTs
Membre
Date d'inscription: 07-03-2008
Messages: 63

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

Oui. Avec le tuto indiqué dans mon dernier message.
En tout cas dans mon cas ça me convient


Julien

Hors ligne

 

#7 05-06-2008 11:02:15

fblutch
Membre
Date d'inscription: 15-09-2007
Messages: 30

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

j'arrive pas a mettre en place le tuto,
J'ai crée mon fichier MyAbstractTables.php  dans models de mon application
j'ai essayé de l'inclure comme ceci dans le bootstrap
include "../application/models/MyAbstractTables.php";
mais ça marche tjrs pas. je sais pas trop ou mettre le MyAbstractTables.php a vrai dire.

un exemple de mes models de table :

Code:

<?php

class Evenement extends Zend_Db_Table
{
    protected $_name = 'evenement';
    protected $_dependentTables = array('participer');
    protected $_referenceMap    = array(
        'Etablissement' => array(
            'columns'           => array('id_etab'),
            'refTableClass'     => 'Etablissement',
            'refColumns'        => array('id_etab')
        )
    );
}

si vous avez une idée, elle serait la bienvenue.

Merci

Hors ligne

 

#8 05-06-2008 11:14:02

stf
Membre
Date d'inscription: 03-04-2008
Messages: 156

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

Tu n'a peut etre pas besoin de charger cette classe a chaque fois .

Concernant ton $_referenceMap, pour columns et refColumns, tu n'a qu'une  colonne, tu n'est donc pas obligé de le mettre dans un Array wink


Tes deux tables existent bien?

et si tu fait un

Code:

$ev=new Evenement();
$ev->fetchAll();

Tu as une erreur?

Hors ligne

 

#9 05-06-2008 11:24:44

JuTs
Membre
Date d'inscription: 07-03-2008
Messages: 63

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

fblutch a écrit:

un exemple de mes models de table :

Code:

<?php

class Evenement extends Zend_Db_Table
{
    protected $_name = 'evenement';
    protected $_dependentTables = array('participer');
    protected $_referenceMap    = array(
        'Etablissement' => array(
            'columns'           => array('id_etab'),
            'refTableClass'     => 'Etablissement',
            'refColumns'        => array('id_etab')
        )
    );
}

il faut que ta classe étende ta classe abstraite, pas Zend_Db_Table. Sinon c'est clair que ça va pas fonctionner ;-)


Perso, j'ai placé mes classes dans un répertoire MZ (pour My Zend) qui se trouve dans le répertoire "library". Quant aux classes et dossiers, j'utilise les conventions de zend. Ce qui fait que ma classe abstraite utilisée dans ce cas-là s'appelle MZ_Db_Table_Abstract et se trouve donc dans MZ/Db/Table/Abstract.php . Mais c'est un choix personnel, libre à toi de les placer où tu veux.


Julien

Hors ligne

 

#10 05-06-2008 12:04:45

fblutch
Membre
Date d'inscription: 15-09-2007
Messages: 30

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

quand je met

Code:

class Evenement extends MyAbstractTables

ça me sort une erreur

Code:

<b>Notice</b>:  Undefined offset:  0 in <b>C:\wamp\www\monsite.com\application\models\MyAbstractTables.php</b> on line <b>6</b><br />

<br />
<b>Catchable fatal error</b>:  Argument 1 passed to MyAbstractTables::_searchRelation() must be an array, null given, called in C:\wamp\www\monsite.com\application\models\MyAbstractTables.php on line 6 and defined in <b>C:\wamp\www\monsite.com\application\models\MyAbstractTables.php</b> on line <b>19</b><br />

et à la ligne 6 du code bah on trouve :

Code:

 $referenceArray = $this->_searchRelation($data[0]);

mais voila je sais pas trop quoi corriger. . .

Dernière modification par fblutch (05-06-2008 12:10:16)

Hors ligne

 

#11 05-06-2008 12:09:25

fblutch
Membre
Date d'inscription: 15-09-2007
Messages: 30

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

stf a écrit:

Tu n'a peut etre pas besoin de charger cette classe a chaque fois .

Concernant ton $_referenceMap, pour columns et refColumns, tu n'a qu'une  colonne, tu n'est donc pas obligé de le mettre dans un Array wink


Tes deux tables existent bien?

et si tu fait un

Code:

$ev=new Evenement();
$ev->fetchAll();

Tu as une erreur?

si je supprime le Array ça me sort l'erreur comme quoi, la méthode attend un tableau smile

et pour l'erreur c'est le post juste au dessus
et mes 2 tables existent bien smile je suis en 1.5 au fait (c'est justement a cause de la mise a jour que je dois modifier mon code)

Dernière modification par fblutch (05-06-2008 12:29:28)

Hors ligne

 

#12 05-06-2008 12:33:09

JuTs
Membre
Date d'inscription: 07-03-2008
Messages: 63

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

Argument 1 passed to MyAbstractTables::_searchRelation() must be an array, null given

Voilà le problème. Visiblement ta variable $data n'est pas définie (null).

Essaie déjà de faire un fetchAll comme te l'a indiqué stf et regarde si tes données sont bien récupérées

Dernière modification par JuTs (05-06-2008 12:34:33)


Julien

Hors ligne

 

#13 05-06-2008 12:42:46

fblutch
Membre
Date d'inscription: 15-09-2007
Messages: 30

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

si je fait un fetchAll()

mon controller

Code:

        $event = new Evenement();
        $this->view->evenement = $event->fetchAll('id_etab in (select id_etab from etablissement where ville like "'.MAVILLE.'") and date>now()','date',10);

j'ai l'erreur suivante :

Code:

Notice: Undefined offset: 0 in C:\wamp\www\monsite.com\application\models\MyAbstractTables.php on line 6

Catchable fatal error: Argument 1 passed to MyAbstractTables::_searchRelation() must be an array, null given, called in C:\wamp\www\monsite.com\application\models\MyAbstractTables.php on line 6 and defined in C:\wamp\www\monsite.com\application\models\MyAbstractTables.php on line 19

c'est à dire la même. . .

Dernière modification par fblutch (05-06-2008 12:43:11)

Hors ligne

 

#14 05-06-2008 12:55:27

JuTs
Membre
Date d'inscription: 07-03-2008
Messages: 63

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

Mets ta méthode _fetch en commentaire, fetchAll utilise cette méthode. Donc forcément puisque tu l'as redéfini il va utiliser la tienne.


Julien

Hors ligne

 

#15 05-06-2008 13:32:49

fblutch
Membre
Date d'inscription: 15-09-2007
Messages: 30

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

JuTs a écrit:

Mets ta méthode _fetch en commentaire, fetchAll utilise cette méthode. Donc forcément puisque tu l'as redéfini il va utiliser la tienne.

comment ça ?
si je la met en commentaire, le site marche, mais il ne va plus me chercher l'element liée.

Hors ligne

 

#16 05-06-2008 13:37:04

fblutch
Membre
Date d'inscription: 15-09-2007
Messages: 30

Re: [Zend_DB][1.5]Full Loading (plusieurs lignes associées a un record

j'ai trouvé ! c'était tout bete ^^

j'ai comparé avec mon ancienne version fullmodel
et en fait, la différence etait les arguments passé en paramètre (qui posé problème) ainsi que la verif de savoir si data été vide (&& !empty($data))

donc maintenant ça marche smile

apres un repas les idées sont tout de suite plus clair !

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