Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MVC][PHP]Jak to powinno wyglądać w MVC
marekc12
post
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ć?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukaskolista
post
Post #2





Grupa: Zarejestrowani
Postów: 872
Pomógł: 94
Dołączył: 31.03.2010

Ostrzeżenie: (0%)
-----


Cytat
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.
A gdzie ty kontroler? MVC to Model-View-Controler. Poczytaj o tych gdziekolwiek.

Kontroler - steruje cala aplikacja.
Model - pobiera, przetwarza itp., czyli wykonuje to, co kaze mu kontroler
Widok - wyswietla to, co kaze kontroler.

Napisales, ze widok prosi model - nigdy w zyciu!

Przepisze Twoj opis po mojemu

Kontroler poprosi model "tytuly" o listę np. pierwszych 20 tytułów. Kontroler dostaje tę listę wraz z ich numerami id. Kontroler przekazuje ta liste do widoku a widok ja wyswietla. Następnie kontroler poprosi model "gatunki" (wysyłając jej numery id tytułów) o tablicę: z listą gatunków dla każdego id tytułu. Kontroler ją dostaje i przekazuje do widoku. Przy prostych skrytpach takie operacje moga wydawac sie bezcelowe, ale jezeli aplikacja jest rozbudowana to porzadek ulatwia prace nad nia, bo wiadomo gdzie co jest.

Ponad to MVC to wzorzec, a z definicji slowa wzorzec wynika, ze nie jest to scisle okreslona regula, czyli kazdy kto mowi "To nie jest w MVC" niekoniecznie ma racje. Tutaj chodzi o rozwarstwienie aplikacji, a nie jakis sztywny schemat. Oczywiscie jak ktos wyswietla html w modelu czy kontrolerze to nie jest to zgodne ze wzorcem, tak samo jak pobieranie dancy w widoku i podobne anomalia.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 4.10.2025 - 21:06