Sommario
Quando sviluppiamo un'applicazione o un sistema web, di solito abbiamo bisogno di interagire con i database. Per questo abbiamo bisogno di creare interfacce che ci permettano di connetterci, aggiungere dati, modificarli o eliminarli. Questo tipo di operazione è conosciuta in diversi modiCRUD è un acronimo che sta per Crea, Leggi, Aggiorna ed Elimina. ABM è un acronimo che sta per High, Low e Data Modification. ABCDE è un acronimo che sta per Add, Find, Change, Display (show or list), Delete data.
Ogni sviluppatore web php cerca sempre di ottimizzare i tempi di sviluppo e svolgere questo tipo di attività richiede molto tempo, ad esempio la creazione di un sistema di amministrazione web semplice, stabile e sicuro. Infatti, ciò che impiega più tempo è comprendere e tradurre nel codice i requisiti di interazione con il database, la logica di business, i modelli e le viste per interagire con ogni tabella del database.
Una soluzione in questo caso per CodeIgniter è usare il Libreria Grocerycrud, che si occuperà di generare tutto semplicemente configurando alcuni parametri, Incorpora anche design css, JavaScript, tabelle, moduli, griglia di dati, funzioni, modelli che possiamo utilizzare direttamente nel nostro sistema.
Grocery CRUD è una libreria sviluppata in pHp, è un software libero e open source la sua licenza GPL v3 e MIT. Per usarlo dobbiamo scaricare la libreria da http://www.grocerycrud.com/downloads
Dopo averlo scaricato, decomprimiamo e copiamo i file
Non spiegheremo in dettaglio come configurare codice accenditore invece ci concentreremo sull'uso diretto. Supponiamo di avere un database di immobili, le cui tabelle sono immobili, utenti, paesi o città, province, tipologie di immobili e tipo di operazione se si tratta di vendita o affitto.
Per generare il crud della tabella real estate creeremo un controller chiamato real estate con il seguente codice
carica-> database (); $ this-> load-> library ('grocery_CRUD');} indice di funzione pubblica () {$ crud = new drogheria_CRUD (); $ crud-> set_theme ('datatables'); $ crud-> set_table ('properties'); $ crud-> columns ('userid', 'property type id', 'price'); $ grid = $ crud-> render (); $ this-> load-> view ('real estate.php', $ grid);}}Invochiamo la libreria del database e la libreria drogheria quindi impostiamo il tema o il design che vogliamo utilizzare per la griglia, impostiamo la tabella da mostrare e indichiamo quali colonne o campi verranno mostrati assegnando i campi della tabella che vogliamo mostrare, generiamo tutto con la funzione rendere () e lo salviamo in una variabile che inviamo alla vista. Quindi creiamo la vista che chiamiamo list.php immobiliare
Nella vista dovremo visualizzare i css e js necessari per il suo funzionamento, la posizione dei file è già definita dal template, in questo caso abbiamo deciso di utilizzare il template databili che possiamo trovare nella directory dei modelli:
/ asset / drogheria_crud / temi / datatables /Se testiamo la nostra applicazione il risultato sarà il seguente:
INGRANDIRE
Vediamo come l'intera griglia è stata generata con poco codice, ora vedremo come aggiungere e migliorare le funzionalità. Ad esempio le colonne id possiamo cambiare il nome e inoltre al posto dell'id dei relativi dati vorremmo avere dei dati più significativi per esempio al posto dell'id utente compare il nome, e al posto dell'idtipoinmueble che mostra di che tipo è se è casa, ufficio, ecc. Per questo dovremmo apportare alcune modifiche al controller.Per cambiare il nome di una colonna facciamo quanto segue nel controller usiamo display_as (currentname, newname)
$ crud-> columns ('userid', 'property type id', 'price'); $ crud-> display_as ('user id', 'User'); $ crud-> display_as ('property type id', ' Tipo di proprietà');Per mostrare i dati al posto dell'id dobbiamo indicare con set_subjet (tabella correlata) e set_relation (id relazionale, tabella correlata, tabella correlata al campo)
$ crud-> set_subject ('user'); $ crud-> set_relation ('userid', 'users', 'name'); // l'id è quello del database che sto mostrando, cioè relazione in immobiliare $ crud -> set_relation ('proprietà_tipo', 'proprietà_tipo', 'nome');Successivamente aggiorniamo la pagina per vedere le modifiche con il codice che abbiamo aggiunto:
Vediamo come viene generata la registrazione o modifica dei dati, dai campi della struttura della tabella viene generato il form di registrazione dei dati. Alcuni possono configurarli in base al tipo di dati, altri dobbiamo indicare quale tipo di dati e elemento del modulo dovrebbero essere assegnati.
Vediamo che i campi del tipo di testo diventano textarea e viene aggiunto il plug-in cfkeditor, possiamo vederlo sul sito Web ckeditor.com, i campi della data diventano datepicker, i campi correlati diventeranno combo o elementi di selezione a discesa.
Un aspetto importante è come convalidare i dati che registriamo, per questo dobbiamo usare la funzione require_fields (campo), quindi nel controller possiamo aggiungere il seguente codice per convalidare che un campo è richiesto.
$ crud-> required_fields ('userid', 'price');Possiamo anche stabilire il tipo di dati che andremo a validare con la funzione set_rules
$ crud-> set_rules ('prezzo', 'Prezzo noleggio', 'numerico'); $ crud-> set_rules ('email', 'Email utente', 'email');In questo modo, indicherà sotto il modulo durante l'invio se c'è un errore:
Oltre ai dati che possiamo inserire, in questo caso dobbiamo caricare i file immagine delle proprietà, per loro dobbiamo usare la funzione set_field_upload ('campo,' directory '), per impostazione predefinita possiamo usare la directory risorse / caricamenti / file, che già incorpora drogheriaAltrimenti, possiamo configurare il nostro.
$ crud-> set_field_upload ('image1', 'assets/upload/file'); $ crud-> set_field_upload ('image2,' asset/upload/file'); $ crud-> set_field_upload ('image3', 'assets/upload/file'); $ crud-> set_field_upload ('image4', 'assets/upload/file');Come creare una griglia di dati multilingue
All'interno della directory / beni / drogheria_crud abbiamo la directory Le lingue con tutte le traduzioni in ogni lingua dell'interfaccia mostrata dalla griglia,
Possiamo andare alla configurazione dalla directory application/config/drogheria_crud.php e indicare la lingua predefinita che vogliamo utilizzare nella configurazione della lingua.
$ config ['grocery_crud_default_language'] = 'spagnolo';Se vogliamo farlo in modo dinamico, ad esempio tramite un menu per scegliere la lingua dal web, aggiungiamo la lingua al nostro codice
$ crud-> set_language ("inglese").Rimozione di funzionalità dalla rete
Una delle possibilità è rimuovere le funzionalità che non vogliamo vengano mostrate o disabilitare i campi per questo useremo un set e le sue diverse possibilità unset_add, unset_edit, unset_delete e unset_list
Quindi, ad esempio, se usiamo $ crud-> unset_edit (); il pulsante di modifica non apparirà nell'elenco, se usiamo $ crud-> unset_texteditor ('descrizione'); la textarea corrispondente alla descrizione non utilizzerà il plugin cfkeditor. Se vogliamo solo mostrare un elenco senza poter eseguire alcuna operazione diversa dalla ricerca, utilizziamo la funzione.
$ crud-> operazioni_unset ();Come invocare una funzione da un evento
Grocerycurd ci consente di gestire i callback, ovvero di invocare una funzione prima, durante o dopo il verificarsi di un evento. Qualche esempio. Se vogliamo aggiungere un callback quando il form viene generato e interessare un particolare campo, utilizzeremo la seguente funzione:
$ crud-> callback_add_field ('email', array ($ this, 'cambia colore'));Quindi nel controller definiamo la funzione che invochiamo nel callback
funzione cambia colore () {return '';}Se vogliamo manipolare qualsiasi colonna useremo quanto segue:
codice $ crud-> callback_column ('prezzo', array ($ this, 'allocatecurrency')); funzione allocatecurrency ($ value, $ row) {return $ value. ' € ';}Possiamo anche utilizzare la richiamata prima di inserire o salvare i dati:
$ crud-> callback_before_insert (array ($ this, 'calculate_total));Ci sono molti altri eventi per invocare i callback che possiamo consultare sul sito web di Drogheria Crud. Altre utilità che ha è la possibilità di esportare in excel e stampare la griglia con i suoi dati, se vogliamo aggiungere un pulsante con funzionalità extra come l'esportazione in pdf, dobbiamo modificare il codice del modello che si trova nella directory asset \ drogheria_crud \ temi \ mypantilla \ views, nella directory del template che stiamo usando modifichiamo i file list_template.php e aggiungiamo ciò di cui abbiamo bisogno.Ti è piaciuto e hai aiutato questo Tutorial?Puoi premiare l'autore premendo questo pulsante per dargli un punto positivo