CakePHP-Fr.Org

Forum francophone du Framework CakePHP

Vous n'êtes pas identifié.

#1 24-07-2008 19:26:50

lcLukas
Pitivier
Date d'inscription: 24-07-2008
Messages: 11

[résolu] Problème de dépendance sur plusieurs tables lors des requètes

Salut,

Bon je vais essayer de me faire comprendre smile

J'ai une :
- table avec pour les séries (je fais un site pour une team de fansub d'anime)
- table pour les épisodes
- table pour les urls de téléchargement des épisodes.

dans ma classe "Serie extends appModel" j'ai var $hasMany=array('Episode' => array('className' => 'Episode', dependent' => true));

dans ma classe "Episode extends appModel" j'ai idem avec les EpsUrl $hasMany=array('EpsUrl' => array('className' => 'EpsUrl', dependent' => true)); et un $belongsTo='Serie';

dans ma class "EpsUrl extends appModel" j'ai un $belongsTo='Episode';

mais dans le controller des series quand je fais $this->Serie->find('all') il me sort un tableau du genre :

Code: php

  1. (
  2.     [0] => Array
  3.         (
  4.             [Serie] => Array
  5.                 (
  6.                     [id] => xx
  7.                     [titre] => xx
  8.                     [synopsis] => xx
  9.                     [image] => xx
  10.                     [etat] => xx
  11.                 )
  12.  
  13.             [Episode] => Array
  14.                 (
  15.                 )
  16.  
  17.         )
  18.  
  19.     [1] => Array
  20.         (
  21.             [Serie] => Array
  22.                 (
  23.                     [id] => xxx
  24.                     [titre] => xxx
  25.                     [synopsis] => xxx
  26.                     [image] => xxx
  27.                     [etat] => xxx
  28.                 )
  29.  
  30.             [Episode] => Array
  31.                 (
  32.                     [0] => Array
  33.                         (
  34.                             [id] => e
  35.                             [serie_id] => e
  36.                             [categorie] => e
  37.                             [numero] => e
  38.                             [titre] => e
  39.                         )
  40.  
  41.                     [1] => Array
  42.                         (
  43.                             [id] => ee
  44.                             [serie_id] => ee
  45.                             [categorie] => ee
  46.                             [numero] => ee
  47.                             [titre] => ee
  48.                         )
  49.  
  50.                     [2] => Array
  51.                         (
  52.                             [id] => eee
  53.                             [serie_id] => eee
  54.                             [categorie] => eee
  55.                             [numero] => eee
  56.                             [titre] => eee
  57.                         )
  58.  
  59.                 )
  60.  
  61.         )
  62.  
  63. )

Donc bien mes séries et les épisodes qui en dépendent, mais pas les urls des épisodes.

Comment je fais ???

Hors ligne

 

#2 25-07-2008 11:48:28

avairet
Chef Pâtissier
Date d'inscription: 25-06-2008
Messages: 1320

Re: [résolu] Problème de dépendance sur plusieurs tables lors des requètes

Salut,

Si j'ai tout bien compris et selon mon avis, si tu fais $this->Serie->Episode->find('all'); tu devrais avoir ce qu'il te faut. Et sinon, tu peux aussi faire un $this->Serie->recursive = 2; juste avant ton $this->Serie->find();

En fait ton modèle EpsUrl n'est pas directement associé à Serie, c'est donc normal que par défaut un find sur Serie ne te le remonte pas !

Regarde aussi du côté du Containable Behavior qui est une merveille pour connecter les modèles entre eux à la volée...

Tu pourrais par exemple faire un $this->Serie->contain(false,array('Episode'=>array('EpsUrl'))); et là ton $this->Serie->find() te ramènerait ce dont tu as besoin.

Hors ligne

 

#3 25-07-2008 12:07:43

lcLukas
Pitivier
Date d'inscription: 24-07-2008
Messages: 11

Re: [résolu] Problème de dépendance sur plusieurs tables lors des requètes

Je vais tester ce que tu me dis.

Par contre pour le récursive ça me donnait rien de mieux (ça répète juste plusieurs fois ce qui est déjà trouvé)

edit :
l'utilisation de la fonction "contain" me donne une erreur sql :
"Warning (512): SQL Error: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'contain' at line 1 [CORE/cake/libs/model/datasources/dbo_source.php, line 512]

Query: contain "

Et l'utilisation de $this->Serie->Episode->find() ne me va pas non plus car le problème c'est qu'il y a plusieurs séries et donc il faudrait les trié par série et en prendre 3 par séries.

Je pense que le mieux c'est récupérer l'id des séries voulu puis avec un foreach faire les requêtes successives sad

re-edit : bon je sais pas ce que j'ai fait comme erreur avant, mais avec $series = $this->Serie->find('all', array('order' => 'titre ASC', 'recursive' => 2)); j'ai exactement ce que je cherche ...

merci pour les réponses et par contre je sais pas comment on ajoute résolue dans le titre

Dernière modification par lcLukas (25-07-2008 12:38:50)

Hors ligne

 

#4 25-07-2008 15:52:16

foxmask
Clafoutiche
Date d'inscription: 25-06-2008
Messages: 195
Site web

Re: [résolu] Problème de dépendance sur plusieurs tables lors des requètes

lcLukas a écrit:

par contre je sais pas comment on ajoute résolue dans le titre

je suis le préposé au résolu dans le titre wink

Hors ligne

 

#5 25-07-2008 15:54:19

foxmask
Clafoutiche
Date d'inscription: 25-06-2008
Messages: 195
Site web

Re: [résolu] Problème de dépendance sur plusieurs tables lors des requètes

lcLukas a écrit:

re-edit : bon je sais pas ce que j'ai fait comme erreur avant, mais avec $series = $this->Serie->find('all', array('order' => 'titre ASC', 'recursive' => 2)); j'ai exactement ce que je cherche ...

peut-etre un simple "problème" de cache du model (si toutefois le caching est actif)

voir la ligne

Code: php

  1. Configure::write('Cache.check', true);

dans app/config/core.php

si c'est actif ; le cache récalcitrant est dans app/tmp/cache/model

Hors ligne

 

Pied de page des forums

Propuls� par FluxBB
Traduction par FluxBB.fr