Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Kohana] Relacje między tabelami w modelach
Forum PHP.pl > Forum > PHP > Frameworki
conmar
Witam,

Mam problem ze zrozumieniem zasad obsługi relacji między tabelami w modelach. Odrazu zaznaczam, że przy pisaniu modeli nie korzystam z ORM ( ręcznie wykonuje zapytania). I teraz tak, powiedzmy, że mam w bazie 2 tablice połączone relacją "wiele do wielu" z 3 tabela lacznikowa:

pages:
page_id | name

modules:
module_id | name | description

pages_modules:
page_id | module_id

To po stronie php w modelach tworzę sobie Page_Model i Module_Model i teraz zastanawiam się jak tu obsłużyć jakoś sensownie tą relacje.Np. przy dodawaniu nowego rekordu do tablicy Pages w kontrollerze powinno się robić coś takiego?:
  1. <?php
  2. if($post->validate())
  3. {
  4.   $page = new Page_Model;
  5.   $module = new Module_Model;
  6.   $page_id = $page->add($post->page_name);
  7.   $module->add($page_id,$post->module_name);
  8. }
  9. ?>

Czy jakoś inaczej tą relacje należy obsłużyć?
phpion
Ja robięto dokładnie jak Ty pokazałeś. Na upartego możesz zamknąć wszystkie zależne inserty w Page_Model::add(). Osobiście jestem jednak za umieszczaniem tego typu operacji w kontrolerze (jak u Ciebie). Dodatkowo mógłbyś machnąć te 2 inserty jako transakcję.
conmar
Dzięki za odpowiedź i rozwianie moich wątpliwości rolleyes.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.