![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
czy biblioteki ZF w wersji 2.2 oferują jakieś rozwiązania związane z "rekursywnymi" operacjami na połączonych tabelach w bazie danych? Mam przykładowo tabele Osoba oraz Pracownik połączone relacją 1:N. Odpowiednia klasa Pracownik zawiera atrybuty (pola składowe) "swojej" tabeli oraz jedno pole stanowiące referencję do odpowiedniego obiektu klasy Osoba. Zastanawiam się, czy istnieje mechanizm, który sprawi, że modyfikując nazwisko w obiekcie klasy Pracownik, automatycznie zaktualizowany zostanie odpowiedni rekord w tabeli Osoba. Oczywiście chciałbym także, aby mechanizm właściwie działał również przy pobieraniu (mapowaniu) danych z bazy. Czytałem, że ZF 1 oferował jakąś obsługę relacji, ale w ZF2.2 nic takiego nie znalazłem - co wydało mi się dość dziwne, bo przecież operacje CRUD na relacyjnych bazach danych są normą w większości aplikacji. Pozdrawiam (IMG:style_emoticons/default/wink.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 3 Dołączył: 19.11.2013 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
Na chwilę obecną zf2 nie wspiera zapisu danych w sposób przez Ciebie opisany. Jedną z opcji jest pobranie Pracowników podczas zapisu w Serwisie. Jeżeli musisz przy tym korzystać z transakcji to zapis musisz wykonać ręcznie w mapperze/tablegateway.
Service Osoba:
Bazy danych strasznie kuleją w zf2, Zend/Db wspieraja jedynie podstawowe możliwości. Przy bardziej zaawansowanych select/insert/update trzeba podpinać doctrine lub bawić się w ręczne pisanie zapytań. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 97 Pomógł: 45 Dołączył: 5.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Proponowałbym skorzystać z gotowego modułu Doctrine 2 do Zend Framework 2. DoctrineORMModule. Konfiguracja bardzo prosta, wystarczy podać dane do bazy danych i możemy korzystać z dobrodziejstw ORM, gdzie mechanizm o którym wspomniałeś jest czymś standardowym.
W kontrolerze wystarczy:
I mamy dostęp do Entity Managera. Tutaj jeszcze krótka prezentacja pokazująca współprace ZF2 i Doctrine 2. http://marco-pivetta.com/doctrine-orm-zf2-tutorial/#/ Ewentualnym rozwiązaniem jest stworzenie z istniejących bibliotek Zenda własnego systemu do zarządzania relacjami, ale będzie to raczej bardzo prymitywne DBAL, tylko pytanie czy jest sens wymyślać koło na nowo? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 2.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dziękuję za odpowiedzi. Jednak zdecyduję się na Doctrine.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 18.09.2025 - 16:04 |