Table des matières
Lorsque nous développons une application ou des systèmes Web, nous devons généralement interagir avec des bases de données. Pour cela, nous devons créer des interfaces qui nous permettent de nous connecter, d'ajouter des données, de les modifier ou de les supprimer. Ce type d'opération est connu de différentes manièresCRUD est un acronyme qui signifie Créer, Lire, Mettre à jour et Supprimer. ABM est un acronyme qui signifie High, Low et Data Modification. ABCDE est un acronyme qui signifie Ajouter, Rechercher, Modifier, Afficher (afficher ou lister), Supprimer des données.
Chaque développeur web php cherche toujours à optimiser le temps de développement et faire ce type de tâche demande beaucoup de temps, par exemple créer un système d'administration web simple, stable et sécurisé. En fait, ce qui prend le plus de temps, c'est de comprendre et de traduire dans le code les exigences d'interaction avec la base de données, la logique métier, les modèles et les vues pour interagir avec chaque table de la base de données.
Une solution dans ce cas pour CodeIgniter, est d'utiliser le La librairie Grocerycrud, qui se chargera de tout générer en configurant juste quelques paramètres, Il intègre également la conception CSS, les JavaScripts, les tableaux, les formulaires, la grille de données, les fonctions, les modèles que nous pouvons utiliser directement dans notre système.
Grocery CRUD est une librairie développée en pHp, est un logiciel libre et open source sa licence GPL v3 et MIT. Pour l'utiliser, nous devons télécharger la bibliothèque à partir de http://www.grocerycrud.com/downloads
Après l'avoir téléchargé, nous décompressons et copions les fichiers
charger-> base de données (); $ this-> load-> library ('grocery_CRUD');} index de fonction publique () {$ crud = new epicery_CRUD (); $ crud-> set_theme ('datatables'); $ crud-> set_table ('properties'); $ crud-> colonnes ('userid', 'property type id', 'price'); $ grid = $ crud-> render (); $ this-> load-> view ('real estate.php', $ grid);}}Nous invoquons la bibliothèque de base de données et la bibliothèque épicerie puis nous définissons le thème ou le design que nous voulons utiliser pour la grille, nous définissons le tableau à afficher et nous indiquons quelles colonnes ou champs seront affichés en attribuant les champs du tableau que nous voulons afficher, nous générons tout avec la fonction rendre () et nous l'enregistrons dans une variable que nous envoyons à la vue. Ensuite, nous créons la vue que nous appelons liste immobilière.php
Dans la vue nous devrons afficher les css et js nécessaires pour que cela fonctionne, l'emplacement des fichiers est déjà défini par le modèle, dans ce cas nous avons décidé d'utiliser le modèle datables que l'on peut trouver dans le répertoire template :
/ actifs / épicerie_crud / thèmes / datatables /Si nous testons notre application le résultat sera le suivant :
AGRANDIR
Pour changer le nom d'une colonne, nous procédons comme suit dans le contrôleur, nous utilisons display_as (currentname, newname)
$ crud-> colonnes ('userid', 'property type id', 'price'); $ crud-> display_as ('user id', 'User'); $ crud-> display_as ('property type id', ' Type de propriété');Pour afficher les données au lieu de l'identifiant, nous devons indiquer avec set_subjet (table liée) et set_relation (identifiant relationnel, table liée, table liée au champ)
$ crud-> set_subject ('user'); $ crud-> set_relation ('userid', 'users', 'name'); // l'identifiant est celui de la base de données que je montre, c'est-à-dire la relation dans immobilier $ crud -> set_relation ('property_type', 'property_type', 'name');Ensuite, nous actualisons la page pour voir les changements avec le code que nous avons ajouté :
Un aspect important est de savoir comment valider les données que nous enregistrons, pour cela nous devons utiliser la fonction required_fields (champ), donc dans le contrôleur, nous pouvons ajouter le code suivant pour valider qu'un champ est requis.
$ crud-> required_fields ('userid', 'price');On peut aussi établir le type de données que l'on va valider avec la fonction set_rules
$ crud-> set_rules ('price', 'Location price', 'numeric'); $ crud-> set_rules ('email', 'User email', 'email');De cette façon, il indiquera ci-dessous le formulaire lors de l'envoi s'il y a une erreur :
$ crud-> set_field_upload ('image1', 'assets / uploads / files'); $ crud-> set_field_upload ('image2,' actifs / téléchargements / fichiers'); $ crud-> set_field_upload ('image3', 'assets / uploads / files'); $ crud-> set_field_upload ('image4', 'assets / uploads / files');
Dans le répertoire / actifs / épicerie_crud nous avons le répertoire Langues avec toutes les traductions dans chaque langue de l'interface que la grille montre,
On peut aller dans la configuration depuis le répertoire application / config / épicerie_crud.php et indiquer la langue par défaut que nous voulons utiliser dans la configuration de la langue.
$ config ['grocery_crud_default_language'] = 'espagnol';Si nous voulons le faire dynamiquement, par exemple via un menu pour choisir la langue sur le Web, nous ajoutons la langue à notre code
$ crud-> set_language ("anglais").Supprimer des fonctionnalités de la grille
L'une des possibilités est de supprimer les fonctionnalités que nous ne voulons pas afficher ou de désactiver les champs pour cela que nous utiliserons un jeu et ses différentes possibilités unset_add, unset_edit, unset_delete et unset_list
Donc par exemple si on utilise $ crud-> unset_edit (); le bouton d'édition n'apparaîtra pas dans la liste, si nous utilisons $ crud-> unset_texteditor ('description'); la zone de texte correspondant à la description n'utilisera pas le plugin cfkeditor. Si nous voulons seulement afficher une liste sans pouvoir effectuer d'opération autre que la recherche, nous utilisons la fonction.
$ crud-> unset_operations ();Comment invoquer une fonction à partir d'un événement
Grocerycurd nous permet de gérer les rappels, c'est-à-dire d'invoquer une fonction avant, pendant ou après qu'un événement se produise. Quelques exemples. Si nous voulons ajouter un rappel lorsque le formulaire est généré et affecter un champ particulier, nous utiliserons la fonction suivante :
$ crud-> callback_add_field ('email', array ($ this, 'color change'));Ensuite, dans le contrôleur, nous définissons la fonction que nous invoquons dans le rappel
fonction changement de couleur () {return '';}Si nous voulons manipuler n'importe quelle colonne, nous utiliserons ce qui suit :
code $ crud-> callback_column ('price', array ($ this, 'allocatecurrency')); fonction allowcurrency ($ value, $ row) {return $ value. ' € ';}
$ crud-> callback_before_insert (array ($ this, 'calculate_total));Il existe de nombreux autres événements pour invoquer des rappels que nous pouvons consulter sur le site de Crud d'épicerie. D'autres utilitaires dont il dispose est la possibilité d'exporter vers excel et d'imprimer la grille avec ses données, si nous voulons ajouter un bouton avec des fonctionnalités supplémentaires telles que l'exportation vers pdf, nous devons modifier le code du modèle qui se trouve dans le répertoire actifs \ épicerie_crud \ thèmes \ mypantilla \ vues, dans le répertoire du modèle que nous utilisons nous modifions les fichiers liste_template.php et nous ajoutons ce dont nous avons besoin.Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif