Cuprins
Când dezvoltăm o aplicație sau sisteme web, de obicei trebuie să interacționăm cu baze de date. Pentru aceasta trebuie să creăm interfețe care să ne permită conectarea, adăugarea datelor, editarea sau ștergerea acestora. Acest tip de operație este cunoscut în diferite moduriCRUD este un acronim care înseamnă Creare, Citire, Actualizare și Ștergere. ABM este un acronim care înseamnă High, Low și Data Modification. ABCDE este un acronim care înseamnă Adăugare, Găsire, Modificare, Afișare (afișare sau listă), Ștergere date.
Fiecare dezvoltator web php caută întotdeauna să optimizeze timpul de dezvoltare și realizarea acestui tip de sarcină necesită mult timp, de exemplu crearea unui sistem de administrare web simplu, stabil și sigur. De fapt, ceea ce necesită cel mai mult timp este să înțeleagă și să traducă în cod cerințele de interacțiune cu baza de date, logica de afaceri, modelele și vizualizările pentru a interacționa cu fiecare tabel din baza de date.
O soluție în acest caz pentru CodeIgniter este folosirea Biblioteca Grocerycrud, care va fi însărcinată cu generarea totul prin simpla configurare a unor parametri, Incorporează, de asemenea, design CSS, JavaScript, tabele, formulare, grilă de date, funcții, modele pe care le putem folosi direct în sistemul nostru.
Alimentația CRUD este o bibliotecă dezvoltată în pHp, este software gratuit și open source licența sa GPL v3 și MIT. Pentru ao utiliza trebuie să descărcăm biblioteca de pe http://www.grocerycrud.com/downloads
După descărcare, dezarhivăm și copiem fișierele
Nu vom detalia cum să configurați Codeigniter în schimb, ne vom concentra pe utilizarea directă. Să presupunem că avem o bază de date cu proprietăți, ale căror tabele sunt proprietăți, utilizatori, orașe, provincii, tipuri de proprietăți și tip de operațiune dacă este vânzare sau închiriere.
Pentru a genera grosimea tabelului imobiliar, vom crea un controlor numit imobil cu următorul cod
load-> database (); $ this-> load-> library ('grocery_CRUD');} index funcție publică () {$ crud = new grocery_CRUD (); $ crud-> set_theme ('tabele de date'); $ crud-> set_table ('proprietăți'); $ crud-> coloane ('userid', 'id tip proprietate', 'preț'); $ grid = $ crud-> render (); $ this-> load-> view ('real estate.php', $ grid);}}Invocăm biblioteca de baze de date și biblioteca băcănie crud apoi setăm tema sau designul pe care dorim să îl folosim pentru grilă, setăm tabelul să se afișeze și indicăm ce coloane sau câmpuri vor fi afișate prin atribuirea câmpurilor tabelului pe care dorim să fie afișate, generăm totul cu functia render () și o salvăm într-o variabilă pe care o trimitem la vizualizare. Apoi creăm vizualizarea pe care o numim listă imobiliară.php
În vizualizare va trebui să afișăm css și js necesare pentru ca acesta să funcționeze, locația fișierelor este deja definită de șablon, în acest caz am decis să folosim șablonul date de date pe care îl putem găsi în directorul șablon:
/ assets / grocery_crud / themes / datatables /Dacă ne testăm aplicația, rezultatul va fi următorul:
MARI
Vedem cum a fost generată întreaga grilă cu puțin cod, acum vom vedea cum să adăugăm și să îmbunătățim funcționalitățile. De exemplu, coloanele id putem schimba numele și, de asemenea, în loc să apară id-ul datelor corelate, ne-ar plăcea câteva date mai semnificative, de exemplu, în loc de id-ul utilizatorului, apare numele și în loc de idtipoinmueble care arată ce tip este dacă este acasă, birou etc. Pentru aceasta ar trebui să facem unele modificări la controler.Pentru a schimba numele unei coloane facem următoarele în controlerul pe care îl utilizăm display_as (nume curent, nume nou)
$ crud-> coloane ('userid', 'id tip proprietate', 'preț'); $ crud-> display_as ('id utilizator', 'Utilizator'); $ crud-> display_as ('id tip proprietate', ' Tipul de proprietate');Pentru a afișa datele în loc de id, trebuie să le indicăm cu set_subjet (tabel asociat) și set_relation (id relațional, tabel asociat, tabel asociat câmpului)
$ crud-> set_subject ('user'); $ crud-> set_relation ('userid', 'users', 'name'); // id-ul este cel al bazei de date pe care îl afișez, adică relația în imobiliare $ crud -> set_relation ('property_type', 'property_type', 'name');Apoi actualizăm pagina pentru a vedea modificările cu codul pe care l-am adăugat:
Să vedem cum este generată înregistrarea sau modificarea datelor, din câmpurile structurii tabelului este generat formularul de înregistrare a datelor. Unii le pot configura în funcție de tipul de date, alții trebuie să indicăm ce tip de date și element de formular ar trebui să fie atribuite.
Vedem că câmpurile de tip text devin textarea și se adaugă pluginul cfkeditor, îl putem vedea pe site-ul web ckeditor.com, câmpurile de dată devin datepicker, câmpurile aferente vor deveni combo-uri sau elemente de selectare drop-down.
Un aspect important este modul de validare a datelor pe care le înregistrăm, pentru aceasta trebuie să folosim funcția required_fields (câmp), prin urmare, în controler putem adăuga următorul cod pentru a valida că este necesar un câmp.
$ crud-> required_fields ('userid', 'price');De asemenea, putem stabili tipul de date pe care urmează să le validăm cu funcția set_rules
$ crud-> set_rules ('preț', 'Preț de închiriere', 'numeric'); $ crud-> set_rules ('e-mail', 'E-mail utilizator', 'e-mail');În acest fel, va indica sub formular când trimiteți dacă există o eroare:
În plus față de datele pe care le putem introduce, în acest caz trebuie să încărcăm fișiere imagine ale proprietăților, pentru acestea trebuie să folosim funcția set_field_upload ('câmp,' director '), implicit putem folosi directorul active / încărcări / fișiere, care încorporează deja băcănie crudÎn caz contrar, ne putem configura propria noastră.
$ crud-> set_field_upload ('image1', 'assets / uploads / files'); $ crud-> set_field_upload ('image2,' assets / uploads / files '); $ crud-> set_field_upload ('image3', 'assets / uploads / files'); $ crud-> set_field_upload ('image4', 'assets / uploads / files');Cum se face o grilă de date multilingvă
În interiorul directorului / assets / grocery_crud avem directorul Limbi cu toate traducerile în fiecare limbă a interfeței afișate în grilă,
Putem merge la configurație din director application / config / grocery_crud.php și indicați limba implicită pe care dorim să o folosim în configurația limbii.
$ config ['grocery_crud_default_language'] = 'spaniolă';Dacă vrem să o facem dinamic, de exemplu printr-un meniu pentru a alege limba de pe web, adăugăm limba la codul nostru
$ crud-> set_language ("engleză").Eliminarea funcționalităților din grilă
Una dintre posibilități este de a elimina funcționalitățile pe care nu dorim să le afișăm sau de a dezactiva câmpurile pentru care le vom folosi Un set și diferitele sale posibilități unset_add, unset_edit, unset_delete și unset_list
Deci, de exemplu, dacă folosim $ crud-> unset_edit (); butonul de editare nu va apărea în listă, dacă îl folosim $ crud-> unset_texteditor ('descriere'); zona de text corespunzătoare descrierii nu va utiliza pluginul cfkeditor. Dacă vrem să afișăm doar o listă fără a putea efectua nicio altă operațiune în afară de căutare, folosim funcția.
$ crud-> unset_operations ();Cum se invocă o funcție dintr-un eveniment
Grocerycurd ne permite să gestionăm apelurile de apel, adică să invocăm o funcție înainte, în timpul sau după apariția unui eveniment. Cateva exemple. Dacă dorim să adăugăm un apel invers atunci când formularul este generat și afectează un anumit câmp, vom folosi următoarea funcție:
$ crud-> callback_add_field ('e-mail', matrice ($ this, 'color change'));Apoi în controler definim funcția pe care o invocăm în callback
schimbare culoare funcție () {return '';}Dacă dorim să manipulăm orice coloană vom folosi următoarele:
cod $ crud-> callback_column ('preț', matrice ($ this, 'allocatecurrency')); funcție allocatecurrency ($ valoare, $ rând) {returnează $ valoare. ' € ';}De asemenea, putem utiliza apelarea înainte de a insera sau salva date:
$ crud-> callback_before_insert (matrice ($ this, 'calculate_total));Există multe alte evenimente pentru a invoca apeluri pe care le putem consulta pe site-ul web Băcănie Crud. Alte utilități pe care le are este posibilitatea de a exporta în Excel și de a imprima grila cu datele sale, dacă dorim să adăugăm un buton cu funcționalități suplimentare, cum ar fi exportul în pdf, trebuie să modificăm codul șablonului care se află în director. active \ grocery_crud \ themes \ mypantilla \ views, în directorul șablonului pe care îl folosim modificăm fișierele list_template.php și adăugăm ceea ce avem nevoie.V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv