![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Witam!
Mam pewien problem z ograniczeniem liczby zapytań SQL w backendzie przy pracy z wersjami językowymi (tabele standardowe attraction oraz attraction_i18n). Mój generator.yml wygląda następująco: Kod ... list: title: Attractions list display: [_icon, name, is_active] filters: [is_active] object_actions: _edit: ~ _delete: ~ peer_method: doSelectWithI18nIfExists ... gdzie metoda doSelectWithI18nIfExists() wygląda tak:
Problem w tym, że w adminie wykonuje mi się masa zbędnych zapytań (myślałem, że rozwiążę to poprzez utworzenie innej metody pobierającej dane):
itd. dla każdego ID (w sumie 40 zapytań :|). Próbowałem wyłączyć w settings.yml ustawienie i18n ale i to nie przyniosło rezultatu. Pomyślałem, że może $obj->setName($v) jakoś wywołuje zapytanie SQL ale zakomentowanie tej linijki wcale nie zmienia liczby wykonywanych zapytań. Więc moje pytanie jest takie: w jaki sposób wyeliminować te dodatkowe (zupełnie zbędne) zapytania?. Pozdrawiam: pion |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 14.07.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cześć Pion,
z tego co widzę, to metoda doSelectWithI18nIfExists w ogóle nie generuje tylu zapytań, stąd wniosek, że gdzieś to się dzieje poza nią. Niestety nie korzystałem jeszcze z 'peer_method' w generator.yml, więc nie mam pojęcia gdzie szukać. Może przeleć się jakimś debugerem gdzie masz założony breakpoint na końcówce metody doSelectWithI18nIfExists i zobacz w którym miejscu wywołują się te selecty po wyjściu z metody? P. |
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Dzięki za odpowiedź. Wydaje mi się, że te dodatkowe zapytania są wykonywane "z założenia". Sądziłem, że wyłączenie opcji i18n spowoduje iż nie zostaną one wykonane. Jednak co bym nie zrobił to zawsze są wykonywane.
Jeśli chodzi o debugery to nie miałem z nimi zbyt wiele do czynienia - ale powalczę, może do czegoś dojdę. Gdyby w międzyczasie ktoś miał jakiś pomysł to byłbym wdzięczny za info. // EDIT: W cache metoda listująca dane wygląda w ten sposób:
i za bardzo nie wiem, które miejsce produkuje tyle zapytań. Gdy wrócę z uczelni po prostu przeładuję tą metodę wywołując tylko doSelectWithI18nIfExists. Już oleję zabawę z pagerem bo może to on miesza... Hmmm a może wiecie w jaki sposób w generator.yml wyłączyć stronicowanie? Ten post edytował phpion.com 19.11.2007, 08:05:29 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.09.2025 - 09:22 |