Hallo werte Yiis,
ich habe folgendes ERM:
830
D.H. eine MANY_MANY Relation zwischen Kategorien und Usern. Die Kategorien dürfen beliebig verschachtelt sein. Umgesetzt ist diese Selbstrelation der Kategorien per Nested Set. Die Verknüpfungstabelle zwischen User und Categories erlaubt nur das Ablegen von Usern in Blattknoten Kategorien.
Jetzt kommt das Problem: Ich möchte natürlich in der Lage sein, für eine beliebige Kategorie alle User abzugreifen. Das geht auch per manuellem SQL Query, z.B. so:
[SQL]
SELECT
"user"."username" AS "username",
"user_user"."user_id" AS "uid",
"user_user"."category_id" AS "cid",
"user_cat"."name",
"user_cat"."parent_id",
"user_cat"."lft",
"user_cat"."rgt",
"parent_cat"."id",
"parent_cat"."lft",
"parent_cat"."rgt"
FROM
"User" AS "user"
INNER JOIN
"UserCategories" "user_user"
ON ("user"."id"="user_user"."user_id")
INNER JOIN
"Categories" AS "user_cat"
ON ("user_user"."category_id"="user_cat"."id")
INNER JOIN
"Categories" AS "parent_cat"
ON ("user_cat"."lft" BETWEEN "parent_cat"."lft" AND "parent_cat"."rgt")
WHERE
"parent_cat".id = 1
GROUP BY
"username",
"uid",
"cid",
"user_cat"."name",
"user_cat"."parent_id",
"user_cat"."lft",
"user_cat"."rgt",
"parent_cat"."id",
"parent_cat"."lft",
"parent_cat"."rgt"
[/SQL]
Ich möchte nun gerne einheitlich per $category->users alle user zur Kategorie bekommen. Deshalb würde ich gerne wissen, wie ich in der relations Methode festlegen kann, dass zum holen der User eine eigene Methode anstelle einer CActiveRelation verwendet wird? Könnt ihr mir weiterhelfen?
Vielen Dank,
Bergtroll