Wpis z mikrobloga

Siemka miał ktoś może kiedyś problem związany z grupowaniem pól formularzu w symfony? Konkretnie mi chodzi o pole typu CollectionType które może być powiązane np. z "grupą" pól typu ChoiceType.

$builder->add('favoriteCities', CollectionType::class, [
'entry_type' => ChoiceType::class,
'entry_options' => [
'choices' => [
'Nashville' => 'nashville',
'Paris' => 'paris',
'Berlin' => 'berlin',
'London' => 'london',
],
],
]);

Chodzi o to że powyższa kolekcja jest widoczna po stronie formularza gdy ją sobie dumpuje. Lecz jeśli przejdę do twiga, to tam nie widzi żadnych elementów children, za czym idzie również brak klucza elements w którym powinny być opcje. Ktoś wie o co chodzi? czy to jakis problem z renderowaniem formularzy?

#php #symfony #programowanie #naukaprogramowania #sylius #symfony4 #programista15k
  • 5
Chodzi o to że powyższa kolekcja jest widoczna po stronie formularza gdy ją sobie dumpuje.


@Rakky: Jak to sprawdziłeś? Wartości formularza zwykle są ustawiane poza builderem. Gdzie ustawiasz dane dla favoriteCities?
@JackBauer: na końcu funkcji gdy się generuje formularz robie po prostu dumpa tego buildera/form. Nie wiem czy to też nie będzie istotne, ale funkcja jest wywoływana przy addEventListener(FormEvents::PRESETDATA....
Własnie ustawiam jej wartości z choicetype choices. Zapomniałem że mam jeszcze mapped na false. To ma byc tylko widoczne i nie zapisywalne.
@Rakky: Jak ustawisz data w builderze to też nie widzisz żadnych wartości w szablonie? Ogólnie ciężko pomóc bez pełnego przykładu ;)

['entry_type' => ChoiceType::class, 'data' => ['Paris', 'Berlin'], ...
CollectionType


@Rakky: a nie musisz dodać sobie elementów dynamicznie? jeśli zaczynasz z pustym formem to nie ma powodu dla którego te miasta miałyby się wyświetlić.