![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 25.08.2009 Skąd: Toruń / Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
Mam dwie klasy:
User:
i News:
Czy po wykonaniu poniższego kodu
Doctrine ściągnie wszystkie aktualności (stworzone przez konkretnego użytkownika) z bazy danych? Ten post edytował Jazi 15.12.2011, 18:39:34 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 175 Pomógł: 18 Dołączył: 11.06.2007 Skąd: Koszalin/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Dlaczego po prostu nie sprawdzisz? Byłoby szybciej niż pisac posta na forum.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 2 Dołączył: 25.08.2009 Skąd: Toruń / Bydgoszcz Ostrzeżenie: (10%) ![]() ![]() |
Eh, to pomocne podejście Polaków mnie rozwala (IMG:style_emoticons/default/biggrin.gif) .
Chodzi mi o to, że jeśli skorzystam z ww. kodu, a nie będę miał zaincludowanej klasy News, to Doctrine wówczas wywali mi błąd, że taki model nie istnieje. Ciekawi mnie, czy Doctrine pobierałby aktualności automatycznie, czyli w momencie stworzenia obiektu przy pomocy ww. zapytania, czy w momencie, kiedy skorzystam z $user->getNews(). BTW. Czy istnieje jakiś sposób na pokazanie wygenerowanego SQL'a z createQuery()? Ten post edytował Jazi 15.12.2011, 18:52:02 |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat Ciekawi mnie, czy Doctrine pobierałby aktualności automatycznie, czyli w momencie stworzenia obiektu przy pomocy ww. zapytania, czy w momencie, kiedy skorzystam z $user->getNews(). W obydwóch przypadkach nie zostaną zaciągnięte aktualności, aktualności zostaną zaciągnięte gdy wywołasz jakąś operację która wymaga fizycznie obiektów z kolekcji, np. metody z interfejsu iteratora (przejście przez pętle), czy metodę count (przy domyślnej konfiguracji relacji). Dodanie jakiegoś elementu do kolekcji również nie powoduje załadowania kolekcji, gdyż ta operacja nie wymaga tego aby kolekcja była zainicjalizowana. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 19.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
W obydwóch przypadkach nie zostaną zaciągnięte aktualności, aktualności zostaną zaciągnięte gdy wywołasz jakąś operację która wymaga fizycznie obiektów z kolekcji, np. metody z interfejsu iteratora (przejście przez pętle), czy metodę count (przy domyślnej konfiguracji relacji). Dodanie jakiegoś elementu do kolekcji również nie powoduje załadowania kolekcji, gdyż ta operacja nie wymaga tego aby kolekcja była zainicjalizowana. czyli konkretnie co trzeba zrobić żeby dane zostały zaciągnięte? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Np. iterowanie po kolekcji.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 19.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 304 Pomógł: 51 Dołączył: 4.02.2005 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
A wiesz co to jest iterator? Jeśli nie wiesz to poczytaj o tym w manualu php i wiedz że interfejs Doctrine\Common\Collections\Collection (czyli pośrednio klasa ArrayCollection i PersistentCollection) rozszerza interfejs Iterator lub IteratorAggregate. A jeśli wydaje Ci się że wiesz co to jest iterator, to masz rację, tylko Ci się wydaje, bo w przeciwnym wypadku byś wiedział jak się iteruje po obiekcie.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 00:39 |