[Symfony][SF2]Generowanie klasy entity |
[Symfony][SF2]Generowanie klasy entity |
30.09.2012, 14:58:48
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Witam,
jak wam pewnie wiadomo Symfony korzysta z entity (klasa dostępu), na jej podstawie jestem w stanie stworzyć tabelę w bazie i kolumny... Ale czy jestem w stanie zrobić to w drugą stronę, tzn jeśli mam gotową jakąś bazę już, to czy dam radę wygenerować na jej podstawie klasę entity ? |
|
|
30.09.2012, 17:48:04
Post
#2
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) |
jasne,
najpierw musisz mieć poprawnie skonfigurowane połączenie z bazą danych (parameters.ini), odpalasz konsolę, wchodzisz do katalogu projektu, następnie generujesz metadane (np. w formacie yaml): Kod php app/console doctrine:mapping:convert yaml ./src/{Nazwa}/{Twoj_Bundle}/Resources/config/doctrine/metadata/orm --from-database --force Z utworzonych metadanych generujesz klasy Entities (np. z wykorzystaniem annotation): Kod php app/console doctrine:mapping:import {Nazwa}{TwojBundle} annotation Potem możesz wygenerować sobie gettery i settery: Kod php app/console doctrine:generate:entities {Nazwa}{TwojBundle} po szczegóły odsyłam do dokumentacji: http://symfony.com/doc/2.0/cookbook/doctri...ngineering.html Ten post edytował rzymek01 30.09.2012, 17:49:42 -------------------- :]
|
|
|
30.09.2012, 18:36:45
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Czym tak właściwie jest u Ciebie {Nazwa} ?
..../src/{Nazwa}/{Twoj_Bundle}/... No i czym jest Twoj_Bundle. Pytam, bo spieram się ze znajomym i już zgłupiałem... Myślałem, że nazwa to będzie np Firma wykonująca zlecenia, a Twoj_Bundle, to może być np coś mniejszego jakiś FrontendBundle, który ma za zadanie pokazać nam to co mamy zobaczyć na stronie... |
|
|
1.10.2012, 16:10:20
Post
#4
|
|
Grupa: Zarejestrowani Postów: 592 Pomógł: 62 Dołączył: 3.08.2006 Ostrzeżenie: (0%) |
wpisujesz to co masz w swojej strukturze katalogów
{Nazwa} to tzw. vendor, załózmy, że tworzysz jakiś silnik do rysowania wykresów, to przykładowo jako vendor wpiszesz Graphs, a jako Bundle CoreBundle. Ze standardowych przykładów: Acme to {Nazwa} DemoBundle to {TwojBundle} Taki jest standard umieszczania swoich plików źródłowych w Symfony2. -------------------- :]
|
|
|
1.10.2012, 20:30:17
Post
#5
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 2 Dołączył: 1.10.2012 Skąd: Łódź Ostrzeżenie: (0%) |
Jeżeli zaczynasz swoją przygodę z Symfony2 to jeśli nie wiesz co tam wpisać to wpierw stwórz sobie jakiegoś bundla ( http://symfony.com/doc/2.0/bundles/SensioG...ate_bundle.html ) i zobacz jakie są nazwy na co i jaka jest struktura katalogów.
Ten post edytował netrat 1.10.2012, 20:30:45 |
|
|
15.10.2012, 21:54:57
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 168 Pomógł: 126 Dołączył: 5.02.2010 Skąd: Świdnica Ostrzeżenie: (0%) |
Więc dopiero dzisiaj podchodzę do tematu tworzenia entity z istniejącej bazy.
Mam bazę, a w niej tabele: - events_logger - ftp_accounts - users - user_roles - user_settings Po wpisaniu w CMD tego: Kod php app/console doctrine:mapping:convert yaml ./src/ApiRest/ServiceBundle/Resources/config/doctrine/metadata/orm --from-database --force otrzymuję komunikat... Kod [Doctrine\ORM\Mapping\MappingException] Table user_settings has no primary key. Doctrine does not support reverse engineering from tables that don't have a primary key. I teraz po pierwsze nie chodzi mi o wygenerowanie Entity obsługującej user_settings, a ma to być do events_logger. Chyba, że to działa do wygenerowania całej bazy do kilku klas Entity, a nie jest to jakoś pokazane w przykładach http://symfony.com/doc/2.0/cookbook/doctri...ngineering.html że generuje kilka Entity ? Dobra, udało się Jedynie jaki problem zauważyłem, to nie ściąga mi dokładnie nazw kolumn podczas tworzenia entity na podstawie istniejącej bazy. Np. mam kolumnę first_name, a po wygenerowaniu mam w entity firstName, co nie jest mi na rękę... da się to jakoś zostawić DOKŁADNIE tak jak jest w bazie ? |
|
|
Wersja Lo-Fi | Aktualny czas: 28.04.2024 - 04:08 |