Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 18.02.2011 Ostrzeżenie: (0%)
|
Witam,
większość z was na pewno zna poradnik Quickstart w dokumentacji ZendFrameworka. Jest tam przykład budowy prostej książki gości. I teraz chciałem zrobić katalog książek w ZF. Mam w bazie tabelki: Book, Author, Book_Author, Book_Genre, itd. Bazując na przykładzie modelu z dokumentacji Quickstart mogę zrobić coś w tym stylu:
To jest w 90% kod z dokumentacji ZF. Ciekawe podejście, jedna klasa do obiektu książki ze zmiennymi takimi jak kolumny w bazie, druga klasa do operacji z bazą, której przesyłamy obiekt tej pierwszej klasy. To wszystko rozumiem i jest ok. Ale teraz dochodzę do tego, że chciałbym pobrać listę książek wraz z nazwiskami ich autorów, gatunkami do których są przypisane i wyświetlić taką listę np. 20 książek wraz z pełnymi informacjami o każdej. W tej chwili metoda FetchAll wyciąga mi wszystko z tabelki Book. Nie mam pojęcia w jaki sposób podejść do tego, żeby dołączyć do tego też dane z innych tabel. Tabela Author_Book jest do relacji między książkami i autorami. (czyli książka ma kilku autorów). Nie wiem jak to ładnie zrobić żeby było zgodne z MVC itd. Czy porzucić całkowicie tej sposób z dwoma klasami czy nie, po prostu proszę o wskazówki w jaki sposób się takie coś robi. pozdrawiam! |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 11 Dołączył: 25.07.2012 Ostrzeżenie: (0%)
|
Witam, chciałbym odświerzyć nieco temat, ponieważ męczy mnie to samo zagadnienie co @markus12. Chodzi mi dokładnie jak najlepiej rozwiązać problem, gdy potrzebujemy pobrać "przysłowiową" książkę, oraz jej autorów, gatunek, etc. Oczywiście możemy zrobić funckję fetchAllBook(), ale zastanawia mnie jej zawrtość.
Użytkownik @quality, podał rozwiązanie bazujące na Zend_Db_Select wszsytko jest okej, ale wynik zwracany jest w postaci tablicy, kórej część pól nie ma odwzorowania w modelu Book. Zakładając, że przyjmujemy, iż mapper zwraca nam obiekt, to jakie atrybuty powinna posiadać klasa Book?
Męczy mnie to zagadnienie, i nie bardzo mogę znaleźć rozwiązanie które by mnie satysfakcjonowało. Bo teraz szybko się okaże, że trzeba będzie wyświetlić obok listy książki i autorów, np.: gatunek, dział w którym się znajduje oraz np.: budynek. Model będzie się rozrastał i rozrastał. Rozbudujemy obiekt wg. sposobu opisanego wyżej. Idąc dalej krokiem, będzie potrzeba w którymś miejscu wyświetlić jescze adres budynku w którym ta książka się znajduje, i mamy (np.: w widoku):
W takiej sytuacji robi się pewne misz-masz, bo na jednej liście (widoku) będziemy potrzebować wszystkich danych (łącznie z działem i budynkiem), a w innym widoku (bez tych dodatkowych danych). Wywołując fetchAllBook (w maperze) pakujemy obiekt złożony mimo, że nie zawsze jest on potrzebny. Można zrobić tak, że w modelu Book, zrobić tak, że:
Jednakże w takiej sytuacji przy foreachowaniu $oBook będziemy za każdym razem wysyłali dodatkowe sqlki. Jak rozwiązujecie takie sytuacje?? Ten post edytował Lysiur 14.12.2012, 10:54:40 |
|
|
|
markus12 [ZF][ZendFramework] Bodowa Modelu 18.02.2011, 14:45:37
quality Poczytaj:
http://framework.zend.com/manual/en/zen... 18.02.2011, 14:51:10
markus12 chodziło mi bardziej o to, czy pobierać z bazy dan... 18.02.2011, 15:22:34
quality Metoda fetchAll() - to jest standardowa metoda Zen... 18.02.2011, 15:31:11
irmidjusz Ja robię różnie w zależności od potrzeb. Chodzi gł... 16.12.2012, 00:15:57
Lysiur Dziękuje @irmidjusz za odpowiedź, myślałem ostatni... 20.12.2012, 10:17:36
CuteOne Weź pod uwagę fakt, że zapytanie, które łączy kilk... 20.12.2012, 12:33:48
ze4lot Spotkałem się kiedyś z modelami pomocniczymi agreg... 21.12.2012, 15:14:30 ![]() ![]() |
|
Aktualny czas: 13.03.2026 - 01:23 |