Symfony4 - Formularz składający się z wielu encji

0

Tworząc formularz z poziomu nowej klasy (w taki sposób: https://symfony.com/doc/current/forms.html#creating-form-classes), muszę wskazać, którą encję wiąże z daną klasą/formularzem:

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => Task::class,
    ));
}

Na wyjściu powstanie mi formularz wraz ze wskazanymi polami, które to zostały opakowane divem.

Jeżeli potrzebuję powiązać formularz z dwiema encjami i chcę zawrzeć tylko niektóre pola z drugiej encji wówczas mogę to zrobić w taki sposób:

  1. Tworzę klasę, która zawiera wymagane pola z drugiej encji.
  2. W klasie reprezentującej główny formularz dodaję powyższą klasę jako zwykłe pole:
$builder
            ->add('user', UserType::class) // UserType jest formularzem reprezentującym 2gą encję

Ten sposób działa - otrzymuję jeden formularz z wybranymi polami od dwóch encji.
Problem jest jednak w kodzie Html jaki jest tworzony przez Symfony.
Pola dotyczące jednej encji są opakowywane w jeden div a te dotyczące drugiej encji w inny div.
Tutaj to dokładniej opisałem: https://4programmers.net/Forum/Webmastering/316401-przesuniecie_elementu_z_utrzymaniem_responsywnosci
Chciałbym aby wszystkie pola były opakowane w jeden kontener/div.

0

Jak to jest generowane przez kontroler i jeszcze z jakimś klasami css to faktycznie lipa, ciężko to ostylować/edytować, dlatego wolę rozwiązanie z laravel/codeigniter gdzie w kontrolerach na kilka linii masz tylko walidację/alerty, a przez widoki przekazujesz wartości i to jest rozwiązanie pozwalające zrobić co tam chcesz. Może jakoś można zrezygnować z tego i zbudować form bez tego, poszperaj w dokumentacji.

0

Sprawdzałeś to? https://symfony.com/doc/current/form/form_customization.html - ogólnie szukaj informacji na temat dekoratorów.

0

A patrzyłes chociaż jak wygląda Twój obecny kod i jak działa ten helper twigowy? Przesledz cykl renderowania htmla i pewnie zauważysz, że możesz napisać własny helper.

1 użytkowników online, w tym zalogowanych: 0, gości: 1