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
-~----------~----~----~----~------~----~------~--~---

Antwort per Email an