![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 199 Pomógł: 2 Dołączył: 9.06.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zastanawiam się jak podejść do takiego tematu: mam dwie entity:
Product , ProductDocument z relacją ManyToOne (zdjęcia do produktu). Uzytkownik dodaje produkt (form builder) w tym formularzu mam odrazu pole typu hidden w którym wrzucam nazwy plików (document) które wgrał przez plugin ajaxowy. Czyli wartość tego pola będzie przykładowo:
Potrzebuje z powyższego stringa wyciągnąć nazwę pliku , stworzyć obiekt ProductDocument i powiazać z Product. W obecniej chwili ten formularz zapisuje mi Product , natomiast ProductDocument tez dodaje się ale bez powiazania z Product, ponadto dodaj mi pełną wartość do nazwy ""plik1.jpg;plik2.jpg;plik3.jpg"" zamiast każdy oddzielnie. Wiem że trzeba użyć explode(';'.$wartosc) ale nie wiem gdzie w ProduktForm mam
DataTransformer.php
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Wystarczy użyć standardowej kolekcji:
https://symfony.com/doc/current/reference/f...collection.html Nie trzeba żadnych pól typu hidden czy data transformerów, robisz pole formularza typu "MyFile", jak klikasz "dodaj zdjęcie" to JS tworzy nowe pole na podstawie prototype (jest nawet gotowy JS w dokumentacji) Można tez użyć standardowego pola typu file, ale własne jest lepsze bo można od razu tam wrzucić np. miniaturkę fotki, dodatkowy checkbox "usuń zdjęcie", jakiś własny event listener itp. Tego typu rozwiązania (np. dodawanie wielu adresów do jednego usera) są w Symfony dość oklepane - wystarczy dokumentacja i trochę praktyki. A jak chcesz robić po swojemu to nie mieszaj do tego formularzy Symfony, bo szkoda czasu na tego typu protezy czy workaroundy. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 10:45 |