Contrôleurs de ressources Laravel

Contrôleurs de ressources Laravel
Un contrôleur de ressources est utilisé dans Laravel pour effectuer facilement des opérations CRUD. Lorsque vous créera un contrôleur de ressources utilisant la commande artisan à partir du terminal, il créera toutes les méthodes nécessaires à l'intérieur du contrôleur liées aux opérations CRUD. Il gère toutes les demandes HTTP pour l'application et nécessite une seule ligne de code pour les routes crud. Comment créer un contrôleur de ressources et effectuer des opérations CRUD dans Laravel sont affichés dans ce tutoriel.

Prérequis:

Vous aurez besoin d'un tableau dans la base de données où le projet Laravel est connecté. Vous pouvez créer une table par la commande migrate ou manuellement. J'ai utilisé le utilisateurs Tableau dans ce tutoriel pour effectuer l'opération CRUD en utilisant le contrôleur de ressources. La table est vide maintenant. La structure de la table est illustrée ci-dessous.

Créer un contrôleur de ressources:

Exécutez la commande suivante à partir du terminal pour créer le contrôleur de ressource nommé UserController.

$ PHP Artisan Make: Controller UserController - Resource

Si vous ouvrez le contrôleur de tout éditeur, vous verrez les codes suivants sont déjà écrits dans le contrôleur. Sept méthodes sont créées automatiquement à l'intérieur du contrôleur pour effectuer les opérations CRUD.

Namespace App \ Http \ Controllers;
Utiliser illuminate \ http \ request;
Class UserController étend le contrôleur

/ **
* Afficher une liste de la ressource.
*
* @return \ illuminer \ http \ réponse
* /
Index de fonction publique ()

//

/ **
* Afficher le formulaire pour créer une nouvelle ressource.
*
* @return \ illuminer \ http \ réponse
* /
Fonction publique Create ()

//

/ **
* Stockez une ressource nouvellement créée en stockage.
*
* @param \ illuminate \ http \ request $ request
* @return \ illuminer \ http \ réponse
* /
Magasin de fonctions publiques (demande $ demande)

//

/ **
* Afficher la ressource spécifiée.
*
* @param int $ id
* @return \ illuminer \ http \ réponse
* /
salon de la fonction publique ($ id)

//

/ **
* Afficher le formulaire pour modifier la ressource spécifiée.
*
* @param int $ id
* @return \ illuminer \ http \ réponse
* /
Edit de fonction publique ($ id)

//

/ **
* Mettez à jour la ressource spécifiée en stockage.
*
* @param \ illuminate \ http \ request $ request
* @param int $ id
* @return \ illuminer \ http \ réponse
* /
Mise à jour de la fonction publique (demande $ demande, $ id)

//

/ **
* Supprimer la ressource spécifiée du stockage.
*
* @param int $ id
* @return \ illuminer \ http \ réponse
* /
Fonction publique Détruiser ($ id)

//

Routes de ressources:

Ajouter l'itinéraire suivant pour le UserController Pour créer des itinéraires de ressources dans la toile.php déposer.

Route :: Resource («utilisateurs», «userController»);

Maintenant, exécutez la commande suivante à partir du terminal pour vérifier la liste de routes actuelle de la la toile.php déposer.

$ php artisan itinéraire: liste

Les informations d'itinéraire suivantes sont générées pour l'utilisation de la méthode Route :: Resource (). Sept itinéraires sont créés pour appeler sept méthodes. Les utilisations de ces itinéraires sont expliquées plus loin dans la prochaine partie de ce tutoriel.

Ajouter les lignes suivantes au début du UserController.php Fichier pour importer le modèle utilisateur, le service de hachage pour hachant le mot de passe et le service DB pour les opérations de base de données.

Utiliser App \ User;
utiliser le hash;
Utiliser DB

Insérer un enregistrement:

Modifier le créer() méthode de UserController avec le code suivant. Ici, un objet du Utilisateur Le modèle est créé pour insérer les nouveaux enregistrements. Après avoir attribué les valeurs obligatoires, le sauvegarder() La fonction est appelée pour insérer le nouvel enregistrement dans le étudiants tableau.

Fonction publique Create ()

$ user = nouvel utilisateur;
$ user-> name = 'Fahmida';
$ user-> email = 'Fahmida @ gmail.com ';
$ user-> mot de passe = hash :: make ('12345');
essayer
$ user-> sauver ();
Echo "Record est inséré";

catch (\ illuminate \ database \ queryException $ e)
Echo "Entrée en double";

L'itinéraire pour appeler le créer() méthode de UserController est 'utilisateurs / création'. Exécutez l'URL suivante à partir du navigateur. Si l'enregistrement est inséré correctement, la sortie suivante apparaîtra.

http: // localhost / laravelpro / public / users / Create

Maintenant, si le tableau vérifie la base de données, vous obtiendrez la sortie suivante.

Afficher tous les enregistrements:

Modifier le indice() méthode de UserController avec le code suivant pour récupérer tous les enregistrements du utilisateurs table et afficher les valeurs de nom et e-mail.

Index de fonction publique ()

$ utilisateurs = DB :: SELECT ('SELECT * FROM Users');
foreach ($ les utilisateurs en tant qu'utilisateur $)

echo "Nom: $ user-> name";
écho "
Email: $ user-> e-mail ";

L'itinéraire pour appeler le indice() méthode de UserController est 'utilisateurs'. Exécutez l'URL suivante à partir du navigateur.

http: // localhost / laravelpro / public / utilisateurs

La sortie suivante apparaîtra.

Sélectionnez un enregistrement spécifique:

Modifier le montrer() méthode de UserController avec le code suivant pour récupérer un enregistrement du utilisateurs table qui contient 1 dans le identifiant champ et afficher la valeur du nom.

salon de la fonction publique ($ id)

$ user = db :: select ('select * dans les utilisateurs où id ='.$ id);
ECHO "Le nom de l'utilisateur est". $ utilisateur [0] -> nom."
"

L'itinéraire pour appeler le montrer() méthode de UserController est 'utilisateurs / id'. Exécutez l'URL suivante à partir du navigateur.

http: // localhost / laravelpro / public / utilisateurs / 1

La sortie suivante apparaîtra.

Mettre à jour l'enregistrement:

Deux méthodes sont principalement définies dans le contrôleur de ressources pour mettre à jour un enregistrement de base de données. Ceux-ci sont modifier() et mise à jour() où les données de l'enregistrement se mettent à jour à l'aide de n'importe quel formulaire modifié. Mais aucun formulaire de modification n'est utilisé ici. Donc, seul le modifier() la méthode est utilisée pour mettre à jour un enregistrement particulier du étudiants tableau. La valeur actuelle d'un enregistrement particulier est imprimée avant et après l'exécution de la requête de mise à jour.

Edit de fonction publique ($ id)

$ user = db :: select ('select * dans les utilisateurs où id ='.$ id);
ECHO "l'e-mail actuel de l'utilisateur est". $ utilisateur [0] -> e-mail."
"
$ email = 'yesmin @ gmail.com ';
$ user = db :: SELECT ("Mettre à jour les utilisateurs définir e-mail = '$ e-mail'wherethere e-mail de l'utilisateur après la mise à jour". $ utilisateur [0] -> e-mail;

L'itinéraire pour appeler le modifier() méthode de UserController est 'utilisateurs / id / modifier'. Exécutez l'URL suivante à partir du navigateur.

http: // localhost / laravelpro / public / utilisateurs / 1 / modifier

La sortie suivante apparaîtra.

Supprimer le dossier:

La méthode de destruction est définie pour supprimer tout enregistrement de la table. Mais l'itinéraire pour supprimer le record passe d'une autre méthode. Ici, j'ai utilisé le montrer() Méthode pour créer un hyperlien pour supprimer l'enregistrement qui est ajouté à la fin de la méthode.

salon de la fonction publique ($ id)

$ user = db :: select ('select * dans les utilisateurs où id ='.$ id);
ECHO "Le nom de l'utilisateur est". $ utilisateur [0] -> nom."
"
écho ".URL ('/')."/ utilisateurs / supprimer /".$ id."'> Supprimer";

Ajouter le code suivant dans le détruire() Méthode pour supprimer un enregistrement particulier.

Fonction publique Détruiser ($ id)

$ user = db :: select ('supprimer des utilisateurs où id ='.$ id);
Echo "L'enregistrement est supprimé";

Ajouter l'itinéraire la toile.php dossier pour appeler le détruire() méthode.

Route :: get ('/ utilisateurs / delete / id', 'userController @ destren');

Après avoir cliqué sur le lien de suppression, la sortie suivante apparaîtra.

Conclusion:

L'utilisation du contrôleur de ressources et le concept de la ressource de route sont expliqués en détail dans ce tutoriel en utilisant une opération CRUD. J'espère que cela aidera les nouveaux utilisateurs de Laravel à mettre en œuvre facilement l'opération CRUD dans leur projet.