Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Klucze obce w Symfony Doctrine
Forum PHP.pl > Forum > PHP > Frameworki
rsobczuk
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:
  1. <?php
  2. $this->hasOne('User', array('local' => 'user_id', 'foreign' => 'user_id'));
  3. ?>


w funkcji
  1. <?php
  2. setUp();
  3. ?>


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ł
destroyerr
Może głupie pytanie ale czy w schemacie nadal masz te znikające klucze?
rsobczuk
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
mike
A Ty generujesz schemat z bazy czy z plików .yml
rsobczuk
Wszystko generuję z bazy danych.
LBO
Cytat(rsobczuk @ 30.06.2008, 11:56:57 ) *
Wszystko generuję z bazy danych.


A z której wersji MySQLa?
rsobczuk
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.