![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 18.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
chcę pobrać listę artykułów wraz z przypisanymi do nich kategoriami. Tabele połączone są relacją wiele do wielu. Jednak:
Generuje następnie bardzo dużo zapytań przy wyświetlaniu (dodatkowe do każdego artykułu).
Pobiera tylko kategorie, którą aktualnie przeglądam podaną w $slug, a nie wszystkie do których przydzielony jest artykuł. Czy da się to zrobić jednym zapytaniem? |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Pierwsze zapytanie pobiera jedynie dane dotyczące artykułu (select(a)), stąd chcąc wyświetlić kategorie każdego z nich konieczne jest wykonanie nowego zapytania. Drugie zapytanie pobiera artykuł oraz wyłącznie jedną kategorię (where(c.slug = :slug)). Ciebie natomiast interesuje pobranie wszystkich artykułów i powiązanych z nimi kategorii, gdzie artykuł posiada powiązanie z daną kategorią:
Parametr :channel to obiekt całej kategorii/kanału, tak więc najpierw powinieneś pobrać ten obiekt na podstawie parametru slug. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 58 Pomógł: 0 Dołączył: 18.05.2010 Ostrzeżenie: (0%) ![]() ![]() |
Teraz w ogóle nie zwraca rekordów.
Może w entity powinno być coś jeszcze ustawione? //edit zamiast całego obiektu podałem jego ID i działa tak jak chciałem. Dzięki ![]() Ten post edytował favik 22.06.2013, 09:31:52 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 18:04 |