Można znaleźć przykładowy moduł CRUD (który obejmuje także siatkę) w tutaj . Nie jestem pewien, czy działa na najnowszej wersji, ale powinieneś być w stanie wyodrębnić potrzebny kod.
Marius
Odpowiedzi:
6
Najpierw musisz utworzyć stronę dla siatki. Zobacz przykład nowej strony magento2
Następnie dodaj komponent interfejsu użytkownika do układu dla tego widoku strony / adminhtml / layout / samplegrid_index_index.xml
: - to, co będzie w siatce xml i kontrolerze w adresie URL, którego nie mogę znaleźć, więc możesz mi pomóc, podając poprawny kod
Pradeep Kumar
jak połączyć tabelę i getdata kluczem referencyjnym w di.xml
xanka
Ten format sample_grid_entity_listing.xml nie jest już prawidłowy (od 2.0.0). Były różne zmiany formatu między wydaniami RC a finałami. Byłem w stanie sprawić, że działał na podstawie Sales/view/adminhtml/ui_component/sales_order_grid.xml.
Drugi plik to komponent xml interfejsu użytkownika, co oznacza, że jeśli używamy tego xml, nie potrzebujesz Grid.php wszystko jest skonfigurowane tylko z tego xml
Aby osiągnąć filtry, potrzebujemy DataProvider, który będzie w Model // DataProvider.php, który jest wymieniony w liście test_lists_listing.xml, która jest
jeśli masz opcję masowego usuwania, musisz utworzyć plik akcji massdelete w kontrolerze, który jest app \ code \ Sugarcode \ Test \ Controller \ Adminhtml \ Lists \ MassDelete.php
Do tego momentu możesz filtrować, sortować opcję i akcja masowa jest wykonywana, a jej działanie działa dobrze, ale wyszukiwanie pełnotekstowe nie działa, jeśli jest to naprawione, pełna siatka jest gotowa, czy ktoś może mi pomóc naprawić ten problem.
Czy były udokumentowane zmiany z wersji 2.0 na 2.2.3 z Magento w którymkolwiek z tych elementów? Lub zaktualizowane zasoby, czy to wszystko nadal obowiązuje?
Anthony Cicchelli
1
aby utworzyć nową stronę siatki, wykonaj poniższe kroki w moim ex i wziąłem mój moduł niestandardowy o nazwie test, a także zasoby nazywane są również testem
bezsilny, aby zastąpić tylko dane siatki po wyszukiwaniu
w przeciwieństwie do magento1.x w magetno2 musimy wspomnieć o ścieżce szablonu w pliku bloku kontenera i trzeba utworzyć plik w folderze szablonów, który jest
zobacz \ adminhtml \ templates \ list \ lists.phtml i przynajmniej jeden kod linii
<?php echo $block->getGridHtml()?>
to wyczyść pamięć podręczną i możesz zobaczyć stronę siatki
Ten sposób może nadal działać, ale jest przestarzały.
KAndy,
1
To działa na teraz, ale wkrótce nie będzie. System siatki przechodzi stopniowo do „ui_components”. Zobacz, jak działa siatka zamówień, i zobacz, jak to działa.
Marius
@Marius Jaka jest główna różnica między ui_components a prostym tworzeniem siatki.
Bhupendra Jadeja
Składnik interfejsu użytkownika to tylko plik XML. Tak deklaratywna konfiguracja. Klasy klasyczne wymagają kodu. Również komponent tge ui ma kilka dodatkowych funkcji, takich jak zapisywanie stanu
Marius
To rozwiązanie działało dla mnie. Ponieważ @Marius mówi, że to podejście zostanie wkrótce usunięte i zostanie zastąpione przez „ui_components”. Ale nie ma oficjalnego samouczka dla Grida używającego „ui_components”, który zawiera pełne informacje na temat łączenia tabel i dostosowywania.
Odpowiedzi:
Najpierw musisz utworzyć stronę dla siatki. Zobacz przykład nowej strony magento2
Następnie dodaj komponent interfejsu użytkownika do układu dla tego widoku strony / adminhtml / layout / samplegrid_index_index.xml
i definicja widoku komponentu interfejsu użytkownika / adminhtml / komponent interfejsu użytkownika / sample_grid_entity_listing.xml
i zdefiniuj dostawcę kolekcji w di
Więcej informacji na temat składników interfejsu użytkownika znajduje się w oficjalnej dokumentacji
źródło
Sales/view/adminhtml/ui_component/sales_order_grid.xml
.Na koniec Grid jest wykonywany za pomocą Ui Component Poniżej znajdują się kroki i pliki, które są potrzebne do gridu z opcją filtrowania.
Najpierw musimy utworzyć xml układ akcji indeksu, który jest:
Sugarcode \ Test \ view \ adminhtml \ layout \ test_lists_index.xml
Drugi plik to komponent xml interfejsu użytkownika, co oznacza, że jeśli używamy tego xml, nie potrzebujesz Grid.php wszystko jest skonfigurowane tylko z tego xml
code \ Sugarcode \ Test \ view \ adminhtml \ ui_component \ test_lists_listing.xml
musimy wspomnieć o kilku tagach dla dostawcy danych w di.xml
Aby osiągnąć filtry, potrzebujemy DataProvider, który będzie w Model // DataProvider.php, który jest wymieniony w liście test_lists_listing.xml, która jest
app \ code \ Magento \ Cms \ Model \ Block \ DataProvider.php
jeśli masz opcję masowego usuwania, musisz utworzyć plik akcji massdelete w kontrolerze, który jest app \ code \ Sugarcode \ Test \ Controller \ Adminhtml \ Lists \ MassDelete.php
Do tego momentu możesz filtrować, sortować opcję i akcja masowa jest wykonywana, a jej działanie działa dobrze, ale wyszukiwanie pełnotekstowe nie działa, jeśli jest to naprawione, pełna siatka jest gotowa, czy ktoś może mi pomóc naprawić ten problem.
źródło
aby utworzyć nową stronę siatki, wykonaj poniższe kroki w moim ex i wziąłem mój moduł niestandardowy o nazwie test, a także zasoby nazywane są również testem
etc / adminhtml / menu.xml
etc / adminhtml / acl.xml
upewnij się, że dla administratora powinny istnieć routery itp. / adminhtml / tras.xml
teraz utwórz 2 nowe działania, jeden z nich to widok domyślny, czyli akcja z indeksem, a drugi to po wyszukaniu potrzebujemy akcji grid
Kontroler / Adminhtml / Lists / Index.php
Kontroler / Adminhtml / Lists / Grid.php
przejdźmy do bloku, jak w magento1.x w magneto2, potrzebujemy też kontenera i Grid.php
Zablokuj \ Adminhtml \ Lists.php
Blokowe \ Adminhtml \ Listy \ Grid.php trzeba wspomnieć menedżera obiektu do odbioru, który jest
\Sugarcode\Test\Model\TestFactory $testFactory
,końcowymi krokami są pliki to widok układu xml, tutaj również mamy układ dla indeksu i siatki
zobacz \ adminhtml \ layout \ test_lists_index.xml
zobacz \ adminhtml \ layout \ test_lists_grid.xml
w układzie siatki xml
bezsilny, aby zastąpić tylko dane siatki po wyszukiwaniu
w przeciwieństwie do magento1.x w magetno2 musimy wspomnieć o ścieżce szablonu w pliku bloku kontenera i trzeba utworzyć plik w folderze szablonów, który jest
zobacz \ adminhtml \ templates \ list \ lists.phtml i przynajmniej jeden kod linii
to wyczyść pamięć podręczną i możesz zobaczyć stronę siatki
źródło