Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 1 Dołączył: 29.10.2012 Ostrzeżenie: (0%)
|
Witam, jestem świerzak jeżeli chodzi o symfony. Chciałbym się zapytać jak zrobić dodawanie rekordów jednocześnie do dwóch tabel.
Otóż mam : 1. tabela "Kth" - entity Kth.php 2. tabela "Adresy" - entity Adresy.php Tabele połączone ze sobą w relacji : Jeden do Wielu ( jeden kth może mieć wiele adresów). Teraz chciałbym zrobić formularz, korzystają np. z jQuery. 1. wpisuję dane kontrahenta (firma, nip etc.) 2. dodaję N adresów (np. adres korespondencyjny/ siedziba / oddział etc. ) : N - liczba zmienna ( N >= 1) Dodawanie nowego adresu chcę zrealizować przy pomocy np. button'a; po kliknięciu klonuje odpowiednie pola i wstawia do formy. Korzystając z transakcji dodać te dane do bazy : 1. dodaj dane kth dla N adresów --- 2. jeżeli dodano kth bez problemu, dodaj adres[N] 3. jeżeli dodano wszystko poprawnie - zapisz 4. jeżeli gdzie wystąpił błąd - rollback. I teraz Panie i Panowie - jak to zrealizować ? W C# sprawa prosta, dodawałem sobie na kontrolkę np. 5 adresów, później w pętli zapisywałem każdy po kolei, jak coś poszło nie tak to wyświetlałem error i rollback z bazy i wsio. A tutaj mam spory problem z realizacją tego zagadnienia (IMG:style_emoticons/default/smile.gif) |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 1 Dołączył: 24.04.2009 Ostrzeżenie: (0%)
|
Okej, a więc, transakcje w Doctrine (bo zakładam, że go używasz) opisane są bardzo ładnie tutaj: http://docs.doctrine-project.org/en/2.0.x/...oncurrency.html. Generalnie - nie musisz nic robić, Doctrine robi to za Ciebie, ale jeśli chcesz mieć nad tym większą kontrolę - tam znajdziesz rozwiązanie (Approach 2)
A to co starasz się zrobić, kiedyś znalazłem całkiem eleganckie rozwiązanie: http://toni.uebernickel.info/2012/03/15/an...-prototype.html (IMG:style_emoticons/default/smile.gif) Ten post edytował danio1021 29.10.2012, 19:43:43 |
|
|
|
Post
#3
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
To nie jest eleganckie rozwiązanie, ale niestety Symfony2 w tym akurat wypadku (operacje na kolekcjach) ma dość kiepskie wsparcie, gdy ma to być w całości oparte o symfony'ową walidację formularzy. Wspomniane wyżej rozwiązanie jest oficjalnym w cookbooku, ale ja osobiście robię to nieco inaczej: albo tworzę elementy dynamicznie, albo mam ukryty blok, który jest klonowany i dołączany po drobnych modyfikacjach do struktury. Do tego najczęściej zdefiniowanie własnego FormType wraz z twigowym widgetem (jeśli całość jest na odpowiednim poziomie skomplikowania), a jeśli jeszcze ma to być reużywalne, to zamknięcie w serwis.
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 1 Dołączył: 29.10.2012 Ostrzeżenie: (0%)
|
Ożesz.... no to widzę trochę nauki przede mną :/ Dzięki panowie za podsunięcie rozwiązania. Ale tak czy siak, nie ma jakiegoś prostszego rozwiązania ? thek - rzuciłbyś jakiś przykład ? Bo przyznam szczerze, że jeszcze nie dotarłem chociażby do tworzenia makr w twigu.
Ten post edytował spacja 30.10.2012, 08:35:24 |
|
|
|
Post
#5
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
Myslę, że te kilka wpisów w cookbooku nieco Ci sprawę przybliżą -> http://symfony.com/doc/2.0/cookbook/form/c...field_type.html Oczywiście to dość prosty przykład na custom form field/type, które można także zamknąć w service. Do tego najlepiej jeszcze machnąć własny theme/form_layout by pole walnąć w render. Przydaje się zwłaszcza gdy masz bardzo nietypowe kontrolki, typu jstree lub inne cuda wianki. Tu masz naprawdę podstawowe przybliżenie tematu http://symfony.com/doc/2.0/cookbook/form/f...tomization.html Zaznaczam jednak, żetworzenie własnych i kombinowanie w Twigu jest mocno nieudokumentowane i wiele rzeczy innych niż podstawowe jest kiepsko opisane. Najlepsze rozwiązanie to... analiza kodu niestety. Sam już niejeden bluzg posłałem gdy coś miałem w Twigu niestandardowego zrobić (IMG:style_emoticons/default/smile.gif)
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 1 Dołączył: 24.04.2009 Ostrzeżenie: (0%)
|
Fakt, bluzgi często towarzyszą pracy z tym frameworkiem na początku, ale jak się nie poddasz to już o wiele łatwiej jest później ;D
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 15 Pomógł: 1 Dołączył: 29.10.2012 Ostrzeżenie: (0%)
|
Dzięki panowie za pomoc, tak czy siak muszę się pouczyć więc dojdzie nowy materiał do kolejki. Odnośnie bluzgów - to ostatnio towarzyszą mi po każdym włączeniu IDE - zawsze myślałem, że framework ma ułatwiać i przyśpieszać pracę, ale na razie wydłuża i komplikuje ją niemiłosiernie :/
|
|
|
|
![]() ![]() |
|
Aktualny czas: 22.12.2025 - 17:48 |