• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Symfony - problem z tablicą w formularzu

Cloud VPS
0 głosów
203 wizyt
pytanie zadane 18 kwietnia 2020 w PHP przez XiverKi Bywalec (2,050 p.)
zamknięte 19 kwietnia 2020 przez XiverKi
Hej, chciałbym w formularzu uzyskać taki efekt:

    <input type="email" id="form_emails_0" name="form[images][0]" value="foo@foo.com"/>

A konkretniej, czy mo≥żliwe jest przy użyciu FormType, dodawania dynamicznie pól.
Powiedzmy, że formularz służy dodawania produktów na sklep, chciałbym aby uzytkownik mógł dodać więcej niż jedno zdjęcie.
Zrobiłem sobie w jquery skrypt, który dodaje kolejne inputy. Wszystko działa pięknie. Problem jest podczas wysyłania requesta typu POST. Symfony nie widzi pól, ponieważ odbiera tylko te zadeklarowane w klasie FormType.

Czy w takiej sytuacji powinienm zrezygnować z Buildera Formularzy czy jest jakiś sposób aby to wykonać?
komentarz zamknięcia: Rozwiąznie: CollectionType - pamietajcie, że potrzebny jest do tego dodatkowo kod javascript.

2 odpowiedzi

0 głosów
odpowiedź 19 kwietnia 2020 przez franz Gaduła (4,940 p.)
Nie wiem jak to działa w Symfony , ale jeżeli masz skończoną ilość pól jakie powinny się pojawić możesz je pokazywać za pomocą warunków

Nie próbowałem tego nigdy , ale wydaje mi się że powinno to zadziałać .
0 głosów
odpowiedź 19 kwietnia 2020 przez Ehlert Ekspert (215,050 p.)

Korzystałeś z ColletcionType?

komentarz 19 kwietnia 2020 przez XiverKi Bywalec (2,050 p.)
Widziałem tutorial na YT związany z collectionType i wydaje mi się, że to nie do końca rozwiązuje mój problem.

Nawet patrząc na dokumentacje. To wygląda bardziej jak dynamiczne dołączanie pól, gdybym chciał skorzystać z EntityType i miałoby ono więcej niż jedną wartosć do wprowadzenia.

Bo skąd niby symfony ma wiedzieć ile ja chce tych  pól dodać?

Chciałbym mieć po prostu inputy, które mają name images[].
komentarz 19 kwietnia 2020 przez Ehlert Ekspert (215,050 p.)
Imo masz swój problem i CollectionType go rozwiązuje.
komentarz 19 kwietnia 2020 przez XiverKi Bywalec (2,050 p.)

W porzadku, niby dziala poprawnie.
Zauważyłem jednak dziwną rzecz.

Po dodaniu tego pola w ten sposób przestała działać mi walidacja długości pól :O
 

->add('title', TextType::class, [
    'constraints' => [
        new Length(['min' => 5])
    ]
])

Nawet gdy pozostawiam pole całkowicie puste. Metoda

$form->isValid();

Zawsze zwraca true.

komentarz 19 kwietnia 2020 przez Ehlert Ekspert (215,050 p.)

W constraints dla collection Type dodaj Valid.​​​​

Podobne pytania

0 głosów
1 odpowiedź 161 wizyt
0 głosów
0 odpowiedzi 489 wizyt
pytanie zadane 30 kwietnia 2021 w PHP przez misiek.sz Bywalec (2,050 p.)

93,464 zapytań

142,459 odpowiedzi

322,730 komentarzy

62,844 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...