[Doctrine] problem z LEFT JOIN |
[Doctrine] problem z LEFT JOIN |
6.12.2010, 00:47:31
Post
#1
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 25.11.2010 Ostrzeżenie: (0%) |
Witam, zaczynam przygodę z Doctrine i mam problem z Joinami. Mam taki fragment bazy:
w modelu wyciągam dane za pomocą:
Schamat wyglada tak:
Problem jest taki ze ostatni JOIN wywala mi błąd, nie wiem co jest nie tak. Czy mogę liczyć na jakąś pomoc? Korzystam z symfony 1.4 Pozdrawiam Ten post edytował Daniel_K 6.12.2010, 00:50:23 |
|
|
6.12.2010, 08:53:17
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) |
Popatrz sobie dokładniej, do czego odnosi się alias wpisany w niedziałającej relacji, a później zerknij na schemat, gdzie ta relacja jest tak naprawdę zdefiniowana.
-------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
6.12.2010, 11:10:05
Post
#3
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 25.11.2010 Ostrzeżenie: (0%) |
Dzięki za zmuszenie do myślenia pomogło
Mam jeszcze takie pytanie, chodź to nieodpowiedni dział ale może się uda. Od kilku dni poznaje symfony i mam pewien dylemat, w sytuacji kiedy chcę zrobić małą modyfikację bazy np. jednej tabeli, po naniesieniu zmian w schema.yml i wydaniu komendy „symfony doctrine:build –all” wszystkie dotychczasowe dane w bazie są usuwane. Czy istnieje jakiś sposób aby nanosić lekkie modyfikacje struktury bazy bez usuwania wszystkich danych? Coś nadal jest nie tak ;/ W sumie nie wywala błędu ale zamiast w wartości mam informacje "No description for object of class "Rank" Tak pobieram dane:
|
|
|
6.12.2010, 16:03:32
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) |
W standardowych joinach nie musisz wpisywać ON, Doctrine samo dobiera relacje.
Sposób na dane nazywa się fixtures, robisz wtedy build --all --and-load. Poza tym: Cytat type: meny Raczej many. Zajrzyj do dokumentacji Doctrine, poczytaj o schema w Yamlu, bo sporo ustawień wpisujesz niepotrzebnie, choćby primary keye, które normalnie się same ustawiają i nie warto ich zmieniać dopóki naprawdę nie trzeba, tak samo jakbyś relacje podpiął z drugiej strony nie musiałbyś wpisywać typu wiele. Dziwnie nazywasz te relacje, imho nieintuicyjnie. Nie lepiej jest nazwać np. User->Services, Service->Users, Rank->Users / User->Rank, zamiast UserToService? [/php]['RankToUser']['Id_user'];[/php] Po co pobierasz relację rangi, żeby tylko dostać się do id usera? |
|
|
6.12.2010, 17:04:03
Post
#5
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 25.11.2010 Ostrzeżenie: (0%) |
Co do fixtures… fajne do danych testowych, ale co w sytuacji kiedy wypuszczam serwis w wersji podstawowej, on sobie tak żyje, posiada kilku użytkowników… a ja równolegle chce go rozwijać?
Co do nazywania to zostało mi z obiektówki w innym języku Ale zgadzam się Twój sposób jest bardziej intuicyjny. Jeśli chodzi o:
Powinno być:
value_rank jest rekordem w tabeli Rank, który przechowuje mi ocenę użytkownika. Tyle że jak się do niego odwołuje w powyższy sposób to wywala mi "No description for object of class "Rank", nie mam pojęcia co jest nie tak… Ten post edytował Daniel_K 6.12.2010, 17:06:15 |
|
|
6.12.2010, 18:04:59
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) |
Wtedy użyj migracji, ale nie powinno się używać danych rzeczywistych do testów.
No description... problem prawdopodobnie leży w braku __toString, ale czemu ją wywołuje to nie wiem. |
|
|
7.12.2010, 01:07:10
Post
#7
|
|
Grupa: Zarejestrowani Postów: 18 Pomógł: 0 Dołączył: 25.11.2010 Ostrzeżenie: (0%) |
Ok dałem __toString() dzięki czemu nie wyświetla informacji "No description for object of class "Rank", lecz nadal nie czyta danych z bazy... ;/
__toString() ustawilem w lib/model/doctrine/Rank.class.php
juz brak pomysłu... zaznaczam że w bazie są dane... Proszę o pomoc Ten post edytował Daniel_K 7.12.2010, 01:07:52 |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 12:32 |