Sadržaj
Kad razvijamo aplikaciju ili web sustave, obično moramo komunicirati s bazama podataka. Za to moramo stvoriti sučelja koja nam omogućuju povezivanje, dodavanje podataka, uređivanje ili brisanje. Ova vrsta operacije poznata je na različite načineCRUD je kratica koja znači Stvaranje, čitanje, ažuriranje i brisanje. ABM je kratica koja označava visoku, nisku i izmjenu podataka. ABCDE je kratica koja označava dodavanje, pronalaženje, promjenu, prikaz (prikaz ili popis), brisanje podataka.
Svaki php web programer uvijek nastoji optimizirati vrijeme razvoja i obavljanje ove vrste zadataka zahtijeva puno vremena, na primjer stvaranje jednostavnog, stabilnog i sigurnog sustava za web administraciju. Zapravo, najviše vremena treba razumjeti i prevesti u kôd zahtjeve interakcije s bazom podataka, poslovnu logiku, modele i poglede za interakciju sa svakom tablicom u bazi podataka.
Rješenje u ovom slučaju za CodeIgniter je korištenje Knjižnica Grocerycrud, koja će biti zadužena za generiranje svega samo konfiguriranjem nekih parametara, Također uključuje css dizajn, JavaScripts, tablice, obrasce, podatkovnu mrežu, funkcije i modele koje možemo koristiti izravno u našem sustavu.
CRUD za namirnice je knjižnica razvijena u pHp, besplatni je softver i open source licenca GPL v3 i MIT. Da bismo je koristili, moramo preuzeti knjižnicu s http://www.grocerycrud.com/downloads
Nakon preuzimanja raspakiramo i kopiramo datoteke
Nećemo detaljno opisati kako konfigurirati Codeigniter umjesto toga usredotočit ćemo se na izravnu uporabu. Pretpostavimo da imamo bazu podataka o nekretninama čije su tablice nekretnine, korisnici, gradovi ili gradovi, pokrajine, vrste nekretnina i vrsta operacije ako se radi o prodaji ili iznajmljivanju.
Za generiranje grube tablice nekretnina izradit ćemo kontroler zvan nekretnine sa sljedećim kodom
učitaj-> baza podataka (); $ this-> load-> library ('grocery_CRUD');} indeks javne funkcije () {$ crud = new grocery_CRUD (); $ crud-> set_theme ('podatkovne tablice'); $ crud-> set_table ('svojstva'); $ crud-> stupci ('userid', 'id vrste svojstva', 'cijena'); $ grid = $ crud-> render (); $ this-> load-> view ('real estate.php', $ grid);}}Pozivamo biblioteku baze podataka i knjižnicu grocerycrud zatim postavljamo temu ili dizajn koji želimo koristiti za rešetku, postavljamo tablicu za prikaz i označavamo koji će se stupci ili polja prikazati dodjeljivanjem polja tablice koje želimo prikazati, sve generiramo pomoću funkcija render () i spremamo ga u varijablu koju šaljemo na prikaz. Zatim stvaramo prikaz koji nazivamo popis nekretnina.php
U prikazu ćemo morati prikazati css i js potrebne za rad, mjesto datoteka već je definirano predloškom, u ovom slučaju smo odlučili koristiti predložak podatke koje možemo pronaći u direktoriju predložaka:
/ assets / grocery_crud / themes / datatables /Ako testiramo našu aplikaciju, rezultat će biti sljedeći:
POVEĆAJTE
Vidimo kako je cijela mreža generirana s malo koda, sada ćemo vidjeti kako dodati i poboljšati funkcionalnosti. Na primjer, stupci id -a možemo promijeniti naziv, a umjesto da se pojavi ID povezanih podataka, željeli bismo neke značajnije podatke, na primjer umjesto korisničkog ID -a pojavljuje se naziv, a umjesto idtipoinmueble koji pokazuje koja je vrsta ako se radi o kući, uredu itd. Za to bismo trebali napraviti neke izmjene na kontroleru.Za promjenu naziva stupca radimo sljedeće u kontroleru koji koristimo display_as (trenutni naziv, novi naziv)
$ crud-> stupci ('userid', 'id vrste svojstva', 'cijena'); $ crud-> display_as ('id korisnika', 'Korisnik'); $ crud-> display_as ('id vrste svojstva', ' Vrsta nekretnine ');Za prikaz podataka umjesto ID -a moramo označiti set_subjet (povezana tablica) i set_relation (relacijski ID, srodna tablica, tablica povezana s poljem)
$ crud-> set_subject ('user'); $ crud-> set_relation ('userid', 'users', 'name'); // id je ona iz baze podataka koju prikazujem, odnosno odnos u nekretnina $ crud -> set_relation ('property_type', 'property_type', 'name');Zatim osvježavamo stranicu kako bismo vidjeli promjene pomoću koda koji smo dodali:
Pogledajmo kako se generira registracija ili izmjena podataka, iz polja strukture tablice generira se obrazac za registraciju podataka. Neki ih mogu konfigurirati prema vrsti podataka, drugi moramo navesti koju vrstu podataka i element obrasca treba dodijeliti.
Vidimo da polja vrste teksta postaju tekstualno područje i da se dodaje dodatak cfkeditor, možemo to vidjeti na web stranici ckeditor.com, polja datuma postaju birač datuma, povezana polja postat će kombinacije ili padajući elementi odabira.
Važan aspekt je kako provjeriti valjanost podataka koje registriramo, za to moramo koristiti funkciju required_fields (field), stoga u kontroler možemo dodati sljedeći kôd kako bismo potvrdili da je polje potrebno.
$ crud-> potrebna_polja ('korisnički ID', 'cijena');Također možemo utvrditi vrstu podataka koje ćemo provjeriti funkcijom set_rules
$ crud-> set_rules ('price', 'Rental price', 'numeric'); $ crud-> set_rules ('email', 'User email', 'email');Na taj će način ispod obrasca prilikom slanja naznačiti postoji li pogreška:
Osim podataka koje možemo unijeti, u ovom slučaju moramo prenijeti slikovne datoteke svojstava, za njih moramo koristiti funkciju set_field_upload ('polje,' direktorij '), prema zadanim postavkama možemo koristiti imenik imovina / učitavanja / datoteke, koji već uključuje grocerycrudInače, možemo sami konfigurirati.
$ 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');Kako napraviti višejezičnu podatkovnu mrežu
Unutar imenika / assets / grocery_crud imamo imenik Jezici sa svim prijevodima na svaki jezik sučelja koje mreža prikazuje,
Možemo ići na konfiguraciju iz direktorija application / config / grocery_crud.php i označite zadani jezik koji želimo koristiti u jezičnoj konfiguraciji.
$ config ['grocery_crud_default_language'] = 'španjolski';Ako to želimo učiniti dinamički, na primjer putem izbornika za odabir jezika s weba, dodajemo jezik u naš kôd
$ crud-> set_language ("engleski").Uklanjanje funkcionalnosti iz mreže
Jedna od mogućnosti je ukloniti funkcionalnosti koje ne želimo prikazati ili onemogućiti polja za to ćemo koristiti jedan set i njegove različite mogućnosti unset_add, unset_edit, unset_delete i unset_list
Tako na primjer ako koristimo $ crud-> unset_edit (); gumb za uređivanje neće se pojaviti na popisu, ako ga koristimo $ crud-> unset_texteditor ('opis'); tekstualno područje koje odgovara opisu neće koristiti dodatak cfkeditor. Ako želimo prikazati samo popis bez mogućnosti izvođenja bilo koje operacije osim pretraživanja, koristimo tu funkciju.
$ crud-> unset_operations ();Kako pozvati funkciju iz događaja
Grocerycurd nam omogućuje obradu povratnih poziva, odnosno pozivanje funkcije prije, za vrijeme ili nakon događaja. Neki primjeri. Ako želimo dodati povratni poziv kada se obrazac generira i utjecati na određeno polje, upotrijebit ćemo sljedeću funkciju:
$ crud-> callback_add_field ('email', niz ($ this, 'promjena boje'));Zatim u kontroleru definiramo funkciju koju pozivamo u povratnom pozivu
funkcija promjena boje () {return '';}Ako želimo manipulirati bilo kojim stupcem, upotrijebit ćemo sljedeće:
kod $ crud-> callback_column ('cijena', niz ($ this, 'allocatecurrency')); funkcija allocatecurrency ($ vrijednost, $ redak) {return $ value. ' € ';}Također možemo upotrijebiti povratni poziv prije umetanja ili spremanja podataka:
$ crud-> callback_before_insert (niz ($ this, 'izračunaj_ukupno));Postoje mnogi drugi događaji za pozivanje povratnih poziva koje možemo konzultirati na web stranici Grocery Crud. Ostali uslužni programi koje ima su mogućnost izvoza u Excel i ispisivanje mreže s podacima, ako želimo dodati gumb s dodatnom funkcionalnošću, poput izvoza u pdf, moramo izmijeniti kôd predloška koji se nalazi u direktoriju imovina \ namirnica_crud \ teme \ mypantilla \ views, u direktoriju predloška koji koristimo mijenjamo datoteke list_template.php i dodamo ono što nam treba.Je li vam se svidio i pomogao ovaj vodič?Autor možete nagraditi pritiskom na ovaj gumb kako biste mu dali pozitivan bod