Le Query Builder de Laravel fournit une interface puissante et fluide pour créer des requêtes SQL en PHP. Il vous permet d'interagir avec la base de données dans une syntaxe expressive de type SQL tout en éliminant l'essentiel de la complexité.
Nous passerons en revue un cas d'utilisation typique dans une application Laravel utilisant Query Builder pour diverses tâches telles que la sélection, l'insertion, la mise à jour et la suppression de données.
Si vous n'avez pas de projet Laravel, vous pouvez en créer un comme suit :
composer create-project --prefer-dist laravel/laravel laravel-query-builder cd laravel-query-builder php artisan serve
Assurez-vous de configurer la configuration de votre base de données dans le fichier .env :
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=your_database DB_USERNAME=your_username DB_PASSWORD=your_password
Exécuter des migrations pour créer des tables par défaut :
php artisan migrate
Créons un contrôleur pour démontrer l'utilisation de Query Builder :
php artisan make:controller UserController
Modifiez UserController.php avec le code suivant :
<?php namespace App\Http\Controllers; use Illuminate\Support\Facades\DB; use Illuminate\Http\Request; class UserController extends Controller { // Fetching all users from the users table public function index() { // Step 3: Select all users $users = DB::table('users')->get(); return response()->json($users); } // Insert a new user public function store(Request $request) { // Step 4: Insert a new user DB::table('users')->insert([ 'name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->password), ]); return response()->json(['message' => 'User created successfully!']); } // Update an existing user public function update(Request $request, $id) { // Step 5: Update user by ID DB::table('users') ->where('id', $id) ->update([ 'name' => $request->name, 'email' => $request->email, ]); return response()->json(['message' => 'User updated successfully!']); } // Delete a user public function destroy($id) { // Step 6: Delete user by ID DB::table('users')->where('id', $id)->delete(); return response()->json(['message' => 'User deleted successfully!']); } }
Utilisez Query Builder pour sélectionner toutes les lignes de la table des utilisateurs :
$users = DB::table('users')->get();
Exemple de réponse :
[ { "id": 1, "name": "John Doe", "email": "john@example.com" }, { "id": 2, "name": "Jane Doe", "email": "jane@example.com" } ]
Insérer un nouvel utilisateur à l'aide de Query Builder :
DB::table('users')->insert([ 'name' => 'Alice', 'email' => 'alice@example.com', 'password' => bcrypt('password123'), ]);
Cela ajoute un nouvel utilisateur à la table des utilisateurs.
Pour mettre à jour un enregistrement existant, utilisez update() :
DB::table('users') ->where('id', 1) ->update([ 'name' => 'John Smith', 'email' => 'johnsmith@example.com' ]);
Cela met à jour l'utilisateur avec l'ID 1 dans la table des utilisateurs.
Pour supprimer un enregistrement de la base de données, utilisez delete() :
DB::table('users')->where('id', 2)->delete();
Cela supprime l'utilisateur avec l'ID 2.
Vous pouvez enchaîner des méthodes supplémentaires pour filtrer les données ou ajouter des conditions à la requête.
$users = DB::table('users') ->where('email', 'like', '%example.com%') ->orderBy('name', 'asc') ->get();
Le générateur de requêtes de Laravel facilite la pagination des résultats.
$users = DB::table('users')->paginate(10);
Utilisez les transactions de base de données pour garantir que plusieurs requêtes sont exécutées avec succès. Si une requête échoue, toutes les modifications sont annulées.
DB::transaction(function () { DB::table('users')->insert([ 'name' => 'John Doe', 'email' => 'john@example.com', 'password' => bcrypt('password123') ]); DB::table('orders')->insert([ 'user_id' => 1, 'order_total' => 500 ]); });
Si vous devez exécuter du SQL brut, le générateur de requêtes de Laravel le permet :
$users = DB::select('SELECT * FROM users WHERE id = ?', [1]);
Le générateur de requêtes de Laravel offre un moyen puissant et flexible d'interagir avec votre base de données, éliminant ainsi une grande partie de la complexité SQL. En décomposant chaque partie (récupération, insertion, mise à jour, suppression, filtrage et bien plus encore), vous pouvez facilement gérer les interactions de votre base de données de manière propre et organisée.
Cet exemple fournit un guide de base sur Query Builder. Au fur et à mesure que votre application se développe, vous pouvez utiliser des fonctionnalités plus avancées telles que les jointures, les sous-requêtes et le chargement rapide avec Eloquent.
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!