Laravel est un framework Web PHP populaire privilégié par les développeurs pour sa syntaxe élégante, son développement pratique et ses performances efficaces. Dans le développement de Laravel, les opérations de base de données sont particulièrement importantes. Laravel fournit une classe DB pour exploiter les bases de données. Cet article présentera en détail l'utilisation de la classe Laravel DB.
Dans le développement Laravel, nous pouvons facilement effectuer des opérations de base de données via la classe DB. Avant d'utiliser la classe DB, vous devez introduire l'espace de noms dans le contrôleur :
use IlluminateSupportFacadesDB;
Grâce à la classe DB, nous pouvons effectuer des opérations telles que des requêtes, des insertions, des mises à jour, des suppressions, etc. Voici un exemple de requête de base de données :
$users = DB::table('users')->get();
L'exemple ci-dessus consiste à obtenir les enregistrements de tous les utilisateurs à partir de la table des utilisateurs. Si vous souhaitez obtenir un seul enregistrement, vous pouvez utiliser le code suivant :
$user = DB::table('users')->where('name', 'John')->first();
Le code ci-dessus obtiendra le premier enregistrement nommé John de la table des utilisateurs.
La clé de la classe DB est le constructeur de requête. Le générateur de requêtes peut créer des requêtes via des méthodes en chaîne, ce qui est très flexible et pratique. Voici quelques exemples :
a. requête conditionnelle
$users = DB::table('users')->where('name', '=', 'John')->get();
L'exemple ci-dessus interroge les enregistrements dont le nom est égal à « John » dans la table des utilisateurs. Le type de condition peut être spécifié via le deuxième paramètre, tel que '>', '0d7210752609125c1eded91895753438=', '<=', etc.
b. orWhere condition query
$users = DB::table('users')->where('name', '=', 'John')->orWhere('name', '=', 'Mary')->get();
L'exemple ci-dessus consiste à interroger les enregistrements dont le nom est égal à « John » ou « name » est égal à « Mary » du tableau des utilisateurs.
c. Requête de condition Where multiple
$users = DB::table('users')->where([ ['status', '=', '1'], ['name', '<>', 'John'] ])->get();
L'exemple ci-dessus consiste à interroger les enregistrements avec un statut égal à 1 et un nom différent de John dans la table des utilisateurs.
d.whereBetween condition query
$users = DB::table('users')->whereBetween('votes', [1, 100])->get();
L'exemple ci-dessus consiste à interroger les enregistrements de votes compris entre 1 et 100 dans la table des utilisateurs.
e. requête conditionnelle WhereIn
$users = DB::table('users')->whereIn('id', [1, 2, 3])->get();
L'exemple ci-dessus consiste à interroger les enregistrements avec les ID 1, 2 et 3 de la table des utilisateurs.
f. orderBy sort query
$users = DB::table('users')->orderBy('name', 'desc')->get();
L'exemple ci-dessus consiste à interroger les enregistrements de la table des utilisateurs dans l'ordre inverse par nom.
La classe DB Laravel prend non seulement en charge les opérations de requête, mais prend également en charge l'insertion, la mise à jour, et supprimer les opérations. Voici quelques exemples :
a. Insertion de données
DB::table('users')->insert([ 'email' => 'john@example.com', 'name' => 'John Doe' ]);
L'exemple ci-dessus insère un enregistrement avec l'adresse e-mail john@example.com et le nom John Doe dans la table des utilisateurs.
b. Mise à jour des données
DB::table('users')->where('id', 1)->update(['votes' => 1]);
L'exemple ci-dessus met à jour le nombre de votes de l'utilisateur avec l'identifiant 1 à 1.
c. Suppression des données
DB::table('users')->where('votes', '<', 100)->delete();
L'exemple ci-dessus supprime tous les utilisateurs avec des votes inférieurs à 100.
Pendant le processus d'opération des données, des accidents sont susceptibles de se produire, tels que des erreurs lors de l'insertion des données. À ce stade, la transaction doit être annulée pour garantir l'intégrité des données. Les classes Laravel DB prennent en charge les opérations de transaction. Voici un exemple :
DB::transaction(function () { DB::table('users')->update(['votes' => 1]); DB::table('posts')->delete(); });
L'exemple ci-dessus est une transaction simple qui met à jour le nombre de votes de tous les utilisateurs dans la table des utilisateurs à 1 et supprime tous les enregistrements de la table des publications. Si une erreur se produit lors d'une transaction, elle est automatiquement annulée et l'intégrité des données est maintenue.
Dans la plupart des cas, la classe Laravel DB se connectera automatiquement à la base de données et à la table par défaut, mais dans dans certains cas, nous devons spécifier manuellement la connexion et le nom de la table. Voici un exemple :
$users = DB::connection('connection-1')->table('users')->get();
L'exemple ci-dessus affiche toutes les données de la table des utilisateurs lors de la première connexion. Nous pouvons configurer plusieurs informations de connexion dans le fichier config/database.php.
Grâce à la classe Laravel DB, nous pouvons facilement effectuer des opérations de base de données. Des simples requêtes de données aux opérations de transaction complexes, les classes Laravel DB fournissent les méthodes et la syntaxe correspondantes. Dans le développement réel, nous pouvons utiliser des générateurs de requêtes, des transactions et des connexions en combinaison selon les besoins pour réaliser des opérations de données flexibles et efficaces.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!