Salut !
J'aimerais pouvoir récupérer mes données en fonctions de certaines conditions liées à des modèles associées en HABTM.
Pour faire simple, un exemple :
Si Post HABTM Tag
J'aimerai pouvoir faire quelque chose du genre :
$this->Post->find('all', array('
'conditions' => array(
'Tag.id' => '121'
)
));
Ca malheureusement ça ne fonctionne pas dans cakePHP parce que lors d'un find avec des HABTM il n'effectue pas les jointures (il fait plusieurs requêtes et le tout est ensuite assemblé en PHP, je vois pas trop pourquoi d'ailleurs).
Mais moi j'aimerais quand même pouvoir récupérer mes posts qui ont le tag dont l'id est 121, ça me parait être pourtant assez basique comme requête pour que ça soit impossible...
J'ai bien essayé avec le comportement Containable mais le soucis c'est qu'en faisant...
$this->Post->find('all', array('
'contain' => array(
'Tag' =>array(
'conditions' => array(
'Tag.id' => '121'
)
)
)
));
...je récupère tous les posts mais si un post a plusieurs tags dont celui avec l'id 121 seul le tag qui a cet id est affiché, donc c'est pas le comportement que je recherche !
Si Jonathan passe par ici je serai curieux de savoir comme il fait avec son plugin Taxonomy pour effectuer des recherches sur les différents tags, car en fait c'est exactement ce que je cherche à faire =)
Merci :)
Évidement quand on recherche une réponse sur des forums, on tombe sur le bon topic qui résume exactement son propre problème et il n'y a pas de réponse ! C'est mon cas ici et maintenant..
Donc je réactive cette conversation et espère que son auteur a non seulement trouvé la réponse mais aussi qu'il va lire ces lignes.
J'en appelle à toi, Deltod, et à Dieu (ou pas), peux-tu me donner la voie ??
Merci d'avance..
salut,
a froid comme ca je donnerais comme solution:
$this->Post->Tag->find('all', array(
"conditions" => array("Tag.id" => 121),
'contain' => array('Post')
));
c est un peu tourner en rond je sais mais bon a voir
$this->PostTags->find('all',array(
'conditions' => array('tag_id' => $id),
'contain' => array('Post','Tag'));
Superbement,
ccvf2s.