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 :
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": "[email protected]" }, { "id": 2, "name": "Jane Doe", "email": "[email protected]" } ]
Insérer un nouvel utilisateur à l'aide de Query Builder :
DB::table('users')->insert([ 'name' => 'Alice', 'email' => '[email protected]', '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' => '[email protected]' ]);
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' => '[email protected]', '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, etc.), 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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3