Mam skrypt, który pobiera dane produktu za pomocą kodu:
$this->produkty = ProduktyPeer::doSelectJoinKategorie(new Criteria());
Dodam, że schema kategorii i produktów wygląda mniej-więcej tak:
Kod
kategorie:
id: ~
nazwa: { type: varchar(255), required: true }
katid: { type: integer, foreignTable: kategorie, foreignReference: id, onDelete: cascade, required: false }
produkty:
id: ~
tytul: { type: varchar(255), required: true }
autor: { type: integer, foreignTable: uzytkownicy, foreignReference: id, required: true }
opis: { type: longvarchar, required: true }
miniatura: { type: integer, foreignTable: zdjecia, foreignReference: id, required: false }
kategoria: { type: integer, foreignTable: kategorie, foreignReference: id, onDelete: setnull }
id: ~
nazwa: { type: varchar(255), required: true }
katid: { type: integer, foreignTable: kategorie, foreignReference: id, onDelete: cascade, required: false }
produkty:
id: ~
tytul: { type: varchar(255), required: true }
autor: { type: integer, foreignTable: uzytkownicy, foreignReference: id, required: true }
opis: { type: longvarchar, required: true }
miniatura: { type: integer, foreignTable: zdjecia, foreignReference: id, required: false }
kategoria: { type: integer, foreignTable: kategorie, foreignReference: id, onDelete: setnull }
Więc jak można się domyśleć, kategorie mogą mieć podkategorie, a te podkategorie swoje podkategorie (kolumna "katid" określa rodzica - kategorię nadrzędną). A produkty i kategorie są połączone relacją.
Proszę Was o wskazówki, czy i jak wykonać listę kategorii i kategorii nadrzędnych, do jakich należy dany produkt, czyli np. mam kategorię Systemy operacyjne, w niej kategorię Windows, a w niej kategorię Windows XP. Przy stosowaniu tego kodu:
$this->produkty = ProduktyPeer::doSelectJoinKategorie(new Criteria());
mogę łatwo wyświetlić kategorię, do jakiej należy produkt poprzez kod w szablonie:
Pytanie tylko jak pobrać (chyba, że już pobrałem, ale w to wątpię) listę kategorii w której znajduje się ta kategoria itd. czyli aby wyświetlało nie tylko "Windows XP", lecz "Systemy -> Windows -> Windows XP"?
Z góry dziękuję za pomoc,
Pozdrawiam