Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF][ZF2][ZendFramework2]CRUD na relacyjnej bazie danych, Praca z relacjami w ZF 2.2
siankotm
post
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)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lucio1988
post
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:
  1. public function insert($data) {
  2. $this->getMapper()->insert($data);
  3. $persons = $data->getPersons();
  4.  
  5. $this->getPersonService()->multiinsert($persons);
  6. }


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ń.
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: 18.10.2025 - 01:12