Saya menggunakan dua tipe formulir untuk satu halaman di proyek Symfony saya. Saya melakukan ini untuk membiarkan pengguna memutuskan antara dua opsi untuk membuat dokumen baru
Bagaimana halaman dibuat: ada beberapa kolom teks yang harus diisi. Semuanya milik DocumentCreateType saya dan juga menyertakan bagian pilihan yang tepat (pilih IATA secara manual) yang dapat Anda lihat di gambar. Jenis formulir kedua saya (UploadProfileType) berisi tiga tarik-turun yang sama ditambah satu tarik-turun tambahan (pasar, saluran1, dan produk) tetapi berada di situs pilihan sebelah kiri (gunakan profil unggahan).
Jadi bergantung pada apa yang dipilih pengguna, hanya DocumentCreateType yang harus dikirimkan, atau kedua tipe formulir harus dikirimkan dan dipertahankan.
Bagaimana saya bisa membuat ini berfungsi di Kontroler saya? Sejauh ini Pengontrol saya terlihat seperti itu tetapi datanya tidak disimpan dengan benar
$upForm = $this->createForm(UploadProfileType::class, $document, array('user' => $currentuser));
$form = $this->createForm(DocumentCreateType::class, $document);
$form->handleRequest($request);
$upForm->handleRequest($request);
if ($form->isSubmitted() && $form->isValid())
{
...
}
ChoiceType untuk pilihan antara profil unggahan dan IATA terlihat seperti itu dan ditangani oleh javascript:
$builder
->add('use_upload_profile', ChoiceType::class, array(
'choices' => array(
true => 'label.use_upload_profile',
false => 'label.select_iatas_manually'
),
'mapped' => false,
'expanded' => true,
'label' => false,
'data' => true,
'translation_domain' => 'Documents'))
;
}