Utvikling med Grocerycrud for Codeigniter pHp

Innholdsfortegnelse
Når vi utvikler en applikasjon eller websystemer, trenger vi vanligvis å samhandle med databaser. For dette må vi lage grensesnitt som lar oss koble til, legge til data, redigere eller slette dem. Denne typen operasjoner er kjent på forskjellige måter
CRUD er et akronym som står for Opprett, Les, Oppdater og Slett. ABM er et akronym som står for High, Low og Data Modification. ABCDE er et akronym som står for Legg til, Finn, Endre, Vis (vis eller liste), Slett data.
Hver php -webutvikler søker alltid å optimalisere utviklingstiden, og det krever mye tid å gjøre denne typen oppgaver, for eksempel å lage et enkelt, stabilt og sikkert webadministrasjonssystem. Det som tar mest tid er faktisk å forstå og oversette interaksjonskravene til databasen, forretningslogikken, modellene og visningene for å samhandle med hver tabell i databasen til koden.
En løsning i dette tilfellet for CodeIgniter, er å bruke Grocerycrud bibliotek, som vil ha ansvaret for å generere alt ved bare å konfigurere noen parametere, Den inneholder også css -design, JavaScript, tabeller, skjemaer, datarutenett, funksjoner, modeller som vi kan bruke direkte i systemet vårt.
Dagligvarer CRUD er et bibliotek utviklet i pHp, er gratis programvare og åpen kildekode, lisensen GPL v3 og MIT. For å bruke det må vi laste ned biblioteket fra http://www.grocerycrud.com/downloads
Etter nedlasting pakker vi ut og kopierer filene

Vi vil ikke detaljere hvordan du konfigurerer Kodeigniter i stedet skal vi fokusere på direkte bruk. Anta at vi har en database med eiendommer, hvis tabeller er eiendommer, brukere, byer, provinser, typer eiendommer og driftstype hvis det er salg eller leie.

For å generere crud på eiendomsbordet vil vi lage en kontroller kalt eiendom med følgende kode
 load-> database (); $ this-> load-> library ('dagligvare_CRUD');} offentlig funksjonsindeks () {$ crud = ny dagligvare_CRUD (); $ crud-> set_theme ('datatabeller'); $ crud-> set_table ('properties'); $ crud-> columns ('userid', 'property type id', 'price'); $ grid = $ crud-> render (); $ this-> load-> view ('real estate.php', $ grid);}}
Vi påkaller databasebiblioteket og biblioteket dagligvare så setter vi temaet eller designet som vi vil bruke for rutenettet, vi setter tabellen til å vise og vi angir hvilke kolonner eller felt som skal vises ved å tilordne feltene i tabellen som vi ønsker skal vises, vi genererer alt med funksjonen gjengi () og vi lagrer den i en variabel som vi sender til visningen. Deretter lager vi visningen som vi kaller eiendomsliste. Php
 
I visningen må vi vise css og js som er nødvendige for at den skal fungere, plasseringen av filene er allerede definert av malen, i dette tilfellet bestemte vi oss for å bruke malen data som vi kan finne i malkatalogen:
 / assets / dagligvare_crud / temaer / datatabeller /
Hvis vi tester søknaden vår, blir resultatet følgende:

FORSTØRRE

Vi ser hvordan hele rutenettet ble generert med liten kode, nå skal vi se hvordan vi kan legge til og forbedre funksjonaliteter. For eksempel kan ID -kolonnene endre navnet, og i stedet for at IDen til de relaterte dataene vises, vil vi gjerne ha mer viktige data, for eksempel i stedet for bruker -ID -navnet, og i stedet for idtipoinmueble som viser hvilken type det er hvis det er hjem, kontor, etc. For dette bør vi gjøre noen endringer i kontrolleren.
For å endre navnet på en kolonne gjør vi følgende i kontrolleren vi bruker display_as (nåværende navn, nytt navn)
 $ crud-> kolonner ('userid', 'property type id', 'price'); $ crud-> display_as ('user id', 'User'); $ crud-> display_as ('property type id', ' Eiendomstype');
For å vise dataene i stedet for ID -en må vi angi med set_subjet (relatert tabell) og set_relation (relasjons -ID, relatert tabell, feltrelatert tabell)
 $ crud-> set_subject ('user'); $ crud-> set_relation ('userid', 'users', 'name'); // id er den i databasen jeg viser, det vil si forholdet i eiendom $ crud -> set_relation ('property_type', 'property_type', 'name');
Deretter oppdaterer vi siden for å se endringene med koden vi la til:

La oss se hvordan dataregistreringen eller modifikasjonen genereres, fra feltene i tabellstrukturen genereres dataregistreringsskjemaet. Noen kan konfigurere dem i henhold til typen data, andre må vi angi hvilken type data og skjemaelement som skal tilordnes.

Vi ser at teksttypefeltene blir til et tekstområde og cfkeditor-pluginet legges til, vi kan se det på ckeditor.com-nettstedet, datofeltene blir datapicker, de relaterte feltene blir kombinasjoner eller rullegardinmenyer for utvalgte elementer.
Et viktig aspekt er hvordan vi skal validere dataene vi registrerer, for dette må vi bruke funksjonen required_fields (felt), derfor kan vi i kontrolleren legge til følgende kode for å validere at et felt er nødvendig.
 $ crud-> required_fields ('userid', 'price');
Vi kan også fastslå hvilken type data vi skal validere med set_rules -funksjonen
 $ crud-> set_rules ('price', 'Rental price', 'numeric'); $ crud-> set_rules ('email', 'User email', 'email');
På denne måten vil det indikere under skjemaet når du sender hvis det er en feil:

I tillegg til dataene vi kan legge inn, må vi i dette tilfellet laste opp bildefiler av egenskapene, for dem må vi bruke funksjonen set_field_upload ('felt,' katalog '), som standard kan vi bruke katalogen eiendeler / opplastinger / filer, som allerede inneholder dagligvareEllers kan vi konfigurere vår egen.
 $ 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');

Hvordan lage et flerspråklig datanett
Inne i katalogen / assets / dagligvare_crud vi har katalogen Språk med alle oversettelsene til hvert språk i grensesnittet som rutenettet viser,
Vi kan gå til konfigurasjonen fra katalogen application / config / dagligvare_crud.php og angi standardspråket vi vil bruke i språkkonfigurasjonen.
 $ config ['grocery_crud_default_language'] = 'spansk';
Hvis vi vil gjøre det dynamisk, for eksempel gjennom en meny for å velge språk fra nettet, legger vi til språket i koden vår
 $ crud-> set_language ("engelsk").
Fjerne funksjonalitet fra nettet
En av mulighetene er å fjerne funksjoner som vi ikke ønsker skal vises eller deaktivere felt for dette vi skal bruke ett sett og dens forskjellige muligheter unset_add, unset_edit, unset_delete og unset_list
Så for eksempel hvis vi bruker $ crud-> unset_edit (); rediger -knappen vil ikke vises i listen, hvis vi bruker $ crud-> unset_texteditor ('beskrivelse'); tekstområdet som tilsvarer beskrivelsen vil ikke bruke cfkeditor -pluginet. Hvis vi bare vil vise en liste uten å kunne utføre andre operasjoner enn søk, bruker vi funksjonen.
 $ crud-> unset_operations ();
Hvordan påkalle en funksjon fra en hendelse
Grocerycurd lar oss håndtere tilbakeringinger, det vil si å påkalle en funksjon før, under eller etter at en hendelse oppstår. Noen eksempler. Hvis vi ønsker å legge til et tilbakeringing når skjemaet genereres og påvirker et bestemt felt, bruker vi følgende funksjon:
 $ crud-> callback_add_field ('email', array ($ this, 'color change'));
Så i kontrolleren definerer vi funksjonen som vi påkaller i tilbakeringingen
 funksjon fargeendring () {return '';}
Hvis vi ønsker å manipulere en hvilken som helst kolonne, bruker vi følgende:
 kode $ crud-> callback_column ('price', array ($ this, 'allocatecurrency')); function allocatecurrency ($ value, $ row) {return $ value. ' € ';}

Vi kan også bruke tilbakeringingen før vi setter inn eller lagrer data:
 $ crud-> callback_before_insert (array ($ this, 'calculate_total));
Det er mange andre hendelser for å påkalle tilbakeringinger som vi kan konsultere på nettstedet til Dagligvarer Crud. Andre verktøy som den har, er muligheten til å eksportere til excel og skrive ut rutenettet med dataene sine. Hvis vi vil legge til en knapp med ekstra funksjonalitet som eksport til pdf, må vi endre koden til malen som er i katalogen eiendeler \ dagligvare_crud \ temaer \ mypantilla \ visninger, i katalogen til malen vi bruker, endrer vi filene list_template.php og vi legger til det vi trenger.Likte og hjalp du denne opplæringen?Du kan belønne forfatteren ved å trykke på denne knappen for å gi ham et positivt poeng
wave wave wave wave wave