Próbuję utworzyć moduł zaplecza, w którym na stronie edycji używam admin-2column-left
układu.
Chcę mieć formularz na każdej karcie, ale nie rozumiem, jak to zrobić.
Idealnie chciałbym wiedzieć, jak przypisać różne formularze uiComponents
do różnych kart lub jak zdefiniować jeden uiComponent
dla mojego formularza, ale być w stanie przypisać, który zestaw pól pasuje do której karty.
Moja konkretna sytuacja, która prowokuje to pytanie, polega na tym, że chcę mieć standardowy formularz na jednej karcie (wielokrotne wprowadzanie tekstu), a na innej karcie chcę mieć dynamicRows
komponent interfejsu użytkownika. Nazwaliśmy te zakładki Elementami głównymi i Elementami zamówienia.
Obecnie implementuję to w następujący sposób: Main jest zdefiniowany w
_prepareForm
metodzie w jej bloku, który jest rozszerzeniem klasyForm\Generic
. Ten formularz pojawia się i działa poprawnie, dopóki nie dodam dynamicznych wierszy.
Mój plik układu ma kod, aby dodać kartę główną i przypisać blok zawartości. Ma również nazwany kontener line_items
, który zawiera uiComponent
formularz zawierający dynamiczne wiersze.
Zakładka Elementy liniowe jest tworzona _beforeToHtml
metodą Widget\Tab
, a jej zawartość jest przypisywana za pomocą wywołania do getChildHtml
kontenera line_items.
Karta działa i jest wypełniona odpowiednią strukturą, co pozwala mi dodawać i usuwać wiersze.
Problem polega na tym, że kiedy przesyłam stronę, przesyłane są tylko dane wejściowe na karcie Elementy zamówienia.
Wiem, że nie skonfigurowałem tego poprawnie i potrzebuję jakiegoś sposobu, aby poinstruować go, aby śledził i przesyłał wszystkie elementy formularza. Większość tej implementacji pochodzi z moich prób inżynierii wstecznej konfiguracji formularza Atrybuty produktu kategorii, który jest podobny do tego, co chcę zrobić.
Czy ktoś ma o tym pomysł?
Odpowiedzi:
Użyj poniższego kodu, aby utworzyć karty z pojedynczym formularzem przy użyciu komponentu interfejsu użytkownika
Utwórz element formularza
Ten kod wyświetli 2 zakładki w formularzu z powiązanymi polami formularza.
Mam nadzieję, że to rozwiązanie będzie dla Ciebie odpowiednie
źródło