Spisie treści
Kiedy tworzymy aplikację lub systemy internetowe, zwykle musimy wchodzić w interakcje z bazami danych. W tym celu musimy stworzyć interfejsy, które pozwolą nam się łączyć, dodawać dane, edytować lub usuwać. Ten rodzaj operacji jest znany na różne sposobyCRUD to akronim oznaczający tworzenie, odczytywanie, aktualizowanie i usuwanie. ABM to skrót od High, Low i Data Modification. ABCDE to akronim oznaczający Dodaj, Znajdź, Zmień, Wyświetl (pokaż lub wyświetl), Usuń dane.
Każdy web developer php zawsze stara się zoptymalizować czas programowania, a wykonanie tego typu zadań wymaga dużo czasu, na przykład stworzenie prostego, stabilnego i bezpiecznego systemu administracji internetowej. W rzeczywistości, to, co zajmuje najwięcej czasu, to zrozumienie i przełożenie na kod wymagań dotyczących interakcji z bazą danych, logiki biznesowej, modeli i widoków do interakcji z każdą tabelą w bazie danych.
Rozwiązaniem w tym przypadku dla CodeIgnitera jest użycie bibliotekę Grocerycrud, która będzie odpowiedzialna za generowanie wszystkiego, po prostu konfigurując niektóre parametry, Zawiera również projektowanie css, JavaScripty, tabele, formularze, siatkę danych, funkcje, modele, które możemy wykorzystać bezpośrednio w naszym systemie.
Grocery CRUD to biblioteka opracowana w pHp, jest wolnym oprogramowaniem i open source jego licencją GPL v3 i MIT. Aby z niego skorzystać musimy pobrać bibliotekę ze strony http://www.grocerycrud.com/downloads
Po pobraniu rozpakujemy i skopiujemy pliki
Nie będziemy szczegółowo omawiać konfiguracji Kod zapalnik zamiast tego skupimy się na bezpośrednim wykorzystaniu. Załóżmy, że mamy bazę danych nieruchomości, której tabele to nieruchomości, użytkownicy, miasta, województwa, rodzaje nieruchomości i rodzaj działalności czy to sprzedaż czy wynajem.
Aby wygenerować crud tabeli nieruchomości, stworzymy kontroler o nazwie nieruchomości z następującym kodem
wczytaj-> baza danych (); $ this-> load-> library ('grocery_CRUD');} indeks funkcji publicznych () {$ crud = new spożywczy_CRUD (); $ crud-> set_theme ('datatables'); $ crud-> set_table ('properties'); $ crud-> kolumny ('userid', 'property type id', 'price'); $ grid = $ crud-> render (); $ this-> load-> view ('real estate.php', $ grid);}}Wywołujemy bibliotekę bazy danych i bibliotekę sklep spożywczy następnie ustawiamy motyw lub projekt, który chcemy użyć do siatki, ustawiamy tabelę do pokazania i wskazujemy, które kolumny lub pola będą pokazywane przypisując pola tabeli, które chcemy pokazać, wszystko generujemy za pomocą funkcja renderowanie () i zapisujemy to w zmiennej, którą wysyłamy do widoku. Następnie tworzymy widok, który nazywamy real estate list.php
W widoku będziemy musieli wyświetlić niezbędne do działania css i js, położenie plików jest już zdefiniowane przez szablon, w tym przypadku zdecydowaliśmy się na użycie szablonu datowniki które możemy znaleźć w katalogu szablonów:
/ aktywa / sklep_spożywczy / motywy / tabele danych /Jeśli przetestujemy naszą aplikację, wynik będzie następujący:
POWIĘKSZAĆ
Widzimy, jak cały grid został wygenerowany za pomocą małego kodu, teraz zobaczymy, jak dodawać i ulepszać funkcjonalności. Na przykład kolumny id możemy zmienić nazwę, a także zamiast id powiązanych danych chcielibyśmy, aby pojawiły się bardziej znaczące dane, na przykład zamiast id użytkownika pojawia się nazwa, a zamiast idtipoinmueble, który pokazuje, jaki to jest typ jeśli jest to dom, biuro itp. W tym celu powinniśmy dokonać pewnych modyfikacji w kontrolerze.Aby zmienić nazwę kolumny wykonujemy następujące czynności w kontrolerze używamy display_as (bieżąca nazwa, nowa nazwa)
$ crud-> kolumny ('userid', 'id typu własności', 'price'); $ crud-> display_as ('user id', 'User'); $ crud-> display_as ('id typu własności', ' Typ nieruchomości');Aby pokazać dane zamiast id musimy wskazać set_subjet (tabela powiązana) i set_relation (identyfikator relacyjny, tabela powiązana, tabela powiązana z polem)
$ crud-> set_subject ('user'); $ crud-> set_relation ('userid', 'users', 'name'); // id to ta z bazy danych, którą pokazuję, czyli relacja w nieruchomości $ crud -> set_relation ('property_type', 'property_type', 'name');Następnie odświeżamy stronę, aby zobaczyć zmiany z dodanym przez nas kodem:
Zobaczmy jak generowana jest rejestracja lub modyfikacja danych, z pól struktury tabeli generowany jest formularz rejestracji danych. Jedni mogą je konfigurować w zależności od typu danych, inni musimy wskazać jaki typ danych i element formularza należy przypisać.
Widzimy, że pola typu tekstowego stają się textarea i dodano wtyczkę cfkeditor, możemy to zobaczyć na stronie ckeditor.com, pola daty stają się datepickerem, powiązane pola staną się kombinacją lub rozwijanymi elementami.
Ważnym aspektem jest to, jak walidować dane, które rejestrujemy, do tego musimy użyć funkcji required_fields (field), dlatego w kontrolerze możemy dodać poniższy kod, aby sprawdzić, czy pole jest wymagane.
$ crud-> pola wymagane ('userid', 'price');Możemy również ustalić typ danych, które zamierzamy walidować za pomocą funkcji set_rules
$ crud-> set_rules ('cena', 'Cena najmu', 'numeric'); $ crud-> set_rules ('email', 'E-mail użytkownika', 'email');W ten sposób podczas wysyłania wskaże poniżej formularza, czy wystąpił błąd:
Oprócz danych, które możemy wprowadzić, w tym przypadku musimy wgrać pliki graficzne właściwości, do nich musimy użyć funkcji set_field_upload ('pole,' katalog '), domyślnie możemy użyć katalogu zasoby / przesłane / pliki, który już zawiera sklep spożywczyW przeciwnym razie możemy skonfigurować własne.
$ crud-> set_field_upload ('image1', 'assets / uploads / files'); $ crud-> set_field_upload ('image2,' zasoby / przesłane / pliki'); $ crud-> set_field_upload ('image3', 'assets / uploads / files'); $ crud-> set_field_upload ('image4', 'assets / uploads / files');Jak zrobić wielojęzyczną siatkę danych
Wewnątrz katalogu / aktywa / spożywczy_crud mamy katalog Języki ze wszystkimi tłumaczeniami na każdy język interfejsu, który pokazuje siatka,
Możemy przejść do konfiguracji z katalogu aplikacja / konfiguracja / spożywczy_crud.php i wskazać domyślny język, którego chcemy użyć w konfiguracji języka.
$ config ['grocery_crud_default_language'] = 'hiszpański';Jeśli chcemy to zrobić dynamicznie, na przykład poprzez menu wyboru języka z sieci, dodajemy język do naszego kodu
$ crud-> set_language ("angielski").Usuwanie funkcjonalności z sieci
Jedną z możliwości jest usunięcie funkcjonalności, których nie chcemy pokazywać lub wyłączenie pól do tego, z których będziemy korzystać jeden komplet i jego różne możliwości unset_add, unset_edit, unset_delete i unset_list
Na przykład jeśli używamy $ crud-> unset_edit (); przycisk edycji nie pojawi się na liście, jeśli użyjemy $ crud-> unset_texteditor ('opis'); obszar tekstowy odpowiadający opisowi nie będzie korzystał z wtyczki cfkeditor. Jeśli chcemy tylko pokazać listę bez możliwości wykonywania jakiejkolwiek operacji poza wyszukiwaniem, używamy funkcji.
$ crud-> unset_operations ();Jak wywołać funkcję ze zdarzenia
Grocerycurd umożliwia nam obsługę wywołań zwrotnych, czyli wywołanie funkcji przed, w trakcie lub po wystąpieniu zdarzenia. Kilka przykładów. Jeśli chcemy dodać wywołanie zwrotne w momencie generowania formularza i wpłynąć na konkretne pole, skorzystamy z następującej funkcji:
$ crud-> callback_add_field ('email', tablica ($ this, 'zmiana koloru'));Następnie w kontrolerze definiujemy funkcję, którą wywołujemy w wywołaniu zwrotnym
zmiana koloru funkcji () {return '';}Jeśli chcemy manipulować dowolną kolumną, użyjemy:
kod $ crud-> callback_column ('cena', tablica ($ this, 'allocatecurrency')); function allocatecurrency ($ value, $ row) {return $ value.' € ';}Z callbacku możemy skorzystać również przed wprowadzeniem lub zapisaniem danych:
$ crud-> callback_before_insert (tablica ($ this, 'calculate_total));Istnieje wiele innych zdarzeń do wywołania wywołań zwrotnych, które możemy sprawdzić na stronie internetowej Surowiec spożywczy. Inne narzędzia jakie posiada to możliwość eksportu do excela i drukowania siatki z jej danymi, jeśli chcemy dodać przycisk z dodatkową funkcjonalnością np. eksport do pdf musimy zmodyfikować kod szablonu który znajduje się w katalogu asset \ food_crud \ themes \ mypantilla \ views, w katalogu szablonu, którego używamy modyfikujemy pliki list_template.php i dodajemy to, czego potrzebujemy.Podobał Ci się i pomógł ten samouczek?Możesz nagrodzić autora, naciskając ten przycisk, aby dać mu pozytywny punkt