Danke für die Antwort!
lustigerweise bin ich gerade mit meinem nächsten Versuch das
umzusetzen fertig geworden und dieser entspricht ziemlich genau deinem
Ansatz. :-)
Vielen Dank trotzdem für deine Erklärung, hab meine Lösung mit deinem
"join" noch etwas entschlacken können.
Trotzdem blöd, dass das nicht noch eleganter geht.
Grüße
Lars
On 3 Dez., 15:58, "Timo Derstappen" <[EMAIL PROTECTED]> wrote:
> Das geht in der Tat nicht so einfach. Mir fällt auf Anhieb auch nichts
> besseres ein als das hier:
>
> $tags = $this->Article->ArticleTag->findAll(array('ArticleTag.tag' =>'news'));
> $responsibles =
> $this->Article->Responsible->findAll(array('Responsible.id => 27));
>
> $article_ids1 = Set::extract($tags, "{n}.Article.id");
> $article_ids2 = Set::extract($responsibles, "{n}.Article.id");
>
> $article_ids = array_intersect($article_ids1, $article_ids2);
> $articles = $this->Article->findAll('Article.id IN(' .
> join($article_ids, ',') . ')');
>
> Das liegt daran, dass das Cake Model nicht alle Beziehungen über Joins
> auflöst. Über DEBUG=2 in der core.php kannst du dir genauer anschauen
> wie die Queries aussehen, die Cake generiert.
>
> Schöne Grüße,
> Timo
>
> Am 03.12.07 schrieb pow1976 <[EMAIL PROTECTED]>:
>
>
>
>
>
> > Hallo :-)
>
> > ich habe ein großes Problem. Da ich noch ziemlich am Anfang mit meinen
> > CakePHP Kenntnissen stehe, hoffe ich hier Hilfe zu meinem Problem zu
> > finden:
>
> > Ich habe mehrere Models. Article, ArticleTag und Responsible diese
> > sind wie folgt verknüpft:
>
> > Article <> (HABTM) ArticleTag, Responsible
>
> > d.h. einem article können ein oder mehrere Tags zuegeordnet werde
> > sowie auch ein oder mehrere Responsibles
> > wenn ich jetzt z.b.
>
> > $this->Article->ArticleTag->findAll(array('ArticleTag.tag' =>
> > 'news'));
>
> > ausführe bekomme ich alle Article denen dieser Tag zugeordnet ist.
> > Soweit so gut. das gleiche kann ich auch für Responsible machen.
>
> > $this->Article->Responsible->findAll(array('Responsible.id => 27));
>
> > Wie aber muss so ein findAll() aussehen wenn ich beides in einem
> > Aufruf machen möchte. Also alle Article mit nem bestimmten Tag von
> > einem bestimmten Responsible? Wenn ich versuche das in dem Article
> > Model zu machen:
>
> > $this->Article->findAll(array('ArticleTag.tab' => 'news',
> > 'Responsible.id' => 27));
>
> > bekomme ich die Fehlermeldung das es das Feld nicht gibt. Was mache
> > ich falsch? Wäre super wenn mir jemand helfen könnte.
>
> --
> Timo Derstappen
>
> http://teemow.com
> mailto:[EMAIL PROTECTED]
--~--~---------~--~----~------------~-------~--~----~
Sie erhalten diese Nachricht, weil Sie Mitglied sind von Google Groups-Gruppe
"CakePHP-de für deutsche CakePHP Entwickler".
Für das Erstellen von Beiträgen in dieser Gruppe senden Sie eine E-Mail
an [email protected]
Um sich von dieser Gruppe abzumelden, senden Sie eine E-Mail an [EMAIL
PROTECTED]
Weitere Optionen finden Sie in dieser Gruppe unter
http://groups.google.com/group/cakephp-de?hl=de
-~----------~----~----~----~------~----~------~--~---