![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 20.10.2002 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Witam,
używam PHP Doctrine w Symfony do obsługi bazy danych MySQL. Mam pytanie odnośnie kluczy obcych w tabelach. Za każdym razem jak generuję schemat i potem model (przy dodawaniu nowych tabel do aplikacji) usuwają mi się definicje kluczy obcych z plików lib/model/doctrine/generated/Base*.class.php takie jak:
w funkcji
Czy da się coś zrobić, żeby klucze zostały zapamiętane (dokładnie chodzi mi o to, żeby funkcja setUp() nie była zastępowana podczas generowania modelu od nowa)? Klucze obce oczywiście są zdefiniowane w tabelach. A tak wogóle, to chyba Doctrine powinno samo wygenerować setUp poprawnie, żeby można było korzystać z InnerJoinów? Dzięki Rafał Ten post edytował rsobczuk 28.06.2008, 23:47:11 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 879 Pomógł: 189 Dołączył: 14.06.2006 Skąd: Bytom Ostrzeżenie: (0%) ![]() ![]() |
Może głupie pytanie ale czy w schemacie nadal masz te znikające klucze?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 20.10.2002 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Tak... nadal.
Funkcja setUp(); za każdym razem generuje się "pusta", czyli self::setUp(); Za każdym razem muszę doklejać $this->hasOne(...) lub $this->hasMany(...) RS |
|
|
![]()
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
A Ty generujesz schemat z bazy czy z plików .yml
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 20.10.2002 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Wszystko generuję z bazy danych.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 0 Dołączył: 20.10.2002 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
5.0
Klucze obce w bazie danych działają. Baza reaguje prawidłowo np na próbę usunięcia rekordów z tabeli głównej, które znajdują się jako klucze obce w innej tabeli. Z tego co się dowiadywałem, to jest raczej bug w Doctrine. Nie wiem jak to jest w Propel'u bo go nigdy nie używałem. Póki co zostaje mi chyba męczyć się z tym, przemyśleć dobrze bazę, zaprojektować ją i dopiero zbudować model i doklepać klucze obce. Ewentualnie jak dojdzie jakaś kolumna w bazie, to przebudować model tylko dla tej jednej tabeli, bądź manualnie wklepać kolumnę... Miejmy nadzieję, że w kolejnej wersji Doctrine już tego problemu nie będzie. Ten post edytował rsobczuk 1.07.2008, 14:30:35 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 09:05 |