Comment puis-je obtenir le résultat suivant dans CakePHP:Exécution d'un modèle :: trouver en boucle dans CakePHP v1.3
Dans ma demande un sujet est lié à la catégorie, la catégorie est liée à la ville et la ville est enfin lié à dire
en d'autres termes:
sujet appartient à la catégorie, la catégorie appartient à la ville, la ville appartient à dire ..
maintenant dans l'action index du contrôleur de sujet que je veux savoir tous les sujets et il est ville et état.
Comment puis-je faire cela.
Je peux facilement le faire en utilisant une requête personnalisée ($ this-> Model-> query()), mais je serai confronté à des problèmes de pagination.
J'ai essayé de faire comme ça
function index()
{
$this->Topic->recursive = 0;
$topics = $this->paginate();
for($i=0; $i<count($topics);$i++)
{
$topics[$i]['City'] = $this->Topic->Category->City->find('all', array('conditions' => array('City.id' => $topics[$i]['Category']['city_id'])));
}
$this->set(compact('topics'));
}
La méthode que je l'ai adopté n'est pas un bon (requête en cours d'exécution dans une boucle)
En utilisant la propriété récursive et la mise à la valeur la plus élevée (2) va dégrader la performance et ne va pas me donner des informations d'état.
Comment vais-je résoudre ce problème?
S'il vous plaît aider
Merci
:-) Merci. Ce comportement est génial, a résolu mon problème. Vous pouvez définir la matrice de pagination de telle sorte qu'elle paginera votre ensemble de résultats sans problème, vous avez seulement besoin de configurer votre tableau correctement. –
Bonnes choses. Ma propre expérience avec Containable a toujours été positive (c'est le moins que je puisse dire), donc je suis content que cela ait bien marché pour votre problème. –
ouais, plus tôt (gâteau v1.2) Je n'étais pas au courant de ce comportement et j'ai laissé tomber un projet à cause de cette fonctionnalité. Maintenant, quand j'ai fait face à ce problème, j'ai décidé de ne pas me rendre et de m'en tenir à cakephp. Je suis plus qu'heureux d'apprendre sur ce comportement car il a répondu à beaucoup de mes questions (liées au cadre) que j'avais plus tôt. –