![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 1.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hej,
dajmy na to, że mam 3 tabele w bazie: tabela "tytuly": id -- tytul tabela "tytul_gatunek": id -- tytul_id -- gatunek_id tabela "gatunki": id -- gatunek Jak widać druga tabela wiąże poszczególne rekordy z 1. i 2. tabeli ze sobą (relacja wiele do wielu). Teraz chciałbym wyświetlić listę utworów i przy każdym wypisać do jakich gatunków należy. Mogę to zrobić np. tak: W modelu mogę stworzyć klasy dla tabel "tytuly" i "gatunki". Widok poprosi klasę modelu "tytuly" o listę np. pierwszych 20 tytułów. Widok dostanie tę listę wraz z ich numerami id. Następnie widok poprosi klasę modelu "gatunki" (wysyłając jej numery id tytułów) o tablicę: z listą gatunków dla każdego id tytułu. Widok ją dostanie. Następnie wszystko poskłada i wyświetli. Wydaje mi się to trochę zagmatwane za bardzo, bo jeśli bym to wszystko zrobił w jeden klasie modelu "tytuły" to zajmowałoby to mniej kodu. pozdrawiam i z góry dzięki za wyjaśnienie problemu (IMG:style_emoticons/default/smile.gif) Jak jest poprawnie zgodnie z modelem MVC, czyli jak powinno się to robić? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 1.08.2008 Ostrzeżenie: (0%) ![]() ![]() |
Przede wszystkim o ile czasami łączy się kontroler z modelem to nigdy nie należy stosować połączenia widok+kontroler. Z widoku nigdy nie łączyłem się z kontrolerem. Kontroler u mnie nic nie zrobił oprócz wywołania widoku, a wywołany widok sam sobie pobierał dane z modelu. W każdym razie, po poprawkach wyglądałoby to chyba tak: Kontroler poprosi klasę modelu "tytuly" o listę np. pierwszych 20 tytułów. Kontroler dostanie tę listę wraz z ich numerami id. Następnie kontroler poprosi klasę modelu "gatunki" (wysyłając jej numery id tytułów) o tablicę: z listą gatunków dla każdego id tytułu. Kontroler ją dostanie. Następnie wszystko poskłada i wywoła widok aby to wyświetlił. Jeszcze interesuje mnie budowa samego modelu: czy w tym przypadku dobrze zrobiłem używając dwóch klas w modelu: "tytuly" i "gatunki" ? Jeśli np. oprócz gatunków utwory miałyby relację jeszcze do autorów, postaci, komentarzy do utworów, itd. W momencie wyświetlania listy utworów musiałbym, wywoływać po kolei te wszystkie klasy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 3.10.2025 - 06:24 |