Maison >développement back-end >tutoriel php >Premiers pas avec Laravel : guide du débutant sur le générateur de requêtes

Premiers pas avec Laravel : guide du débutant sur le générateur de requêtes

Susan Sarandon
Susan Sarandonoriginal
2024-09-23 06:22:02709parcourir

Getting Started with Laravel: A Beginner

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.


Étape 1 : Configurer le projet Laravel

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

Étape 2 : utiliser le générateur de requêtes dans un contrôleur

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!']);
    }
}

Étape 3 : Récupérer les données

Utilisez Query Builder pour sélectionner toutes les lignes de la table des utilisateurs :

$users = DB::table('users')->get();
  • Description :
    • La méthode DB::table('users') cible la table des utilisateurs.
    • La méthode get() récupère tous les enregistrements de cette table.

Exemple de réponse :

[
    {
        "id": 1,
        "name": "John Doe",
        "email": "john@example.com"
    },
    {
        "id": 2,
        "name": "Jane Doe",
        "email": "jane@example.com"
    }
]

Étape 4 : Insérer des données

Insérer un nouvel utilisateur à l'aide de Query Builder :

DB::table('users')->insert([
    'name' => 'Alice',
    'email' => 'alice@example.com',
    'password' => bcrypt('password123'),
]);
  • Description :
    • La méthode insert() insère une nouvelle ligne dans la table des utilisateurs.
    • Les données sont transmises sous forme de tableau associatif où les clés correspondent aux noms de colonnes.

Cela ajoute un nouvel utilisateur à la table des utilisateurs.


Étape 5 : Mettre à jour les données

Pour mettre à jour un enregistrement existant, utilisez update() :

DB::table('users')
    ->where('id', 1)
    ->update([
        'name' => 'John Smith',
        'email' => 'johnsmith@example.com'
    ]);
  • Description :
    • La clause Where() sélectionne la ligne avec l'identifiant = 1.
    • La méthode update() modifie les champs nom et email de la ligne sélectionnée.

Cela met à jour l'utilisateur avec l'ID 1 dans la table des utilisateurs.


Étape 6 : Supprimer les données

Pour supprimer un enregistrement de la base de données, utilisez delete() :

DB::table('users')->where('id', 2)->delete();
  • Description :
    • La clause Where() spécifie la condition pour sélectionner l'utilisateur avec l'ID 2.
    • La méthode delete() supprime la ligne correspondante du tableau.

Cela supprime l'utilisateur avec l'ID 2.


Étape 7 : Filtrage avec Query Builder

Vous pouvez enchaîner des méthodes supplémentaires pour filtrer les données ou ajouter des conditions à la requête.

Exemple : Récupérer des utilisateurs avec une condition spécifique

$users = DB::table('users')
    ->where('email', 'like', '%example.com%')
    ->orderBy('name', 'asc')
    ->get();
  • Description :
    • La clause Where() ajoute une condition, récupérant les utilisateurs dont l'e-mail contient exemple.com.
    • La méthode orderBy() trie les utilisateurs par nom par ordre croissant.

Étape 8 : Pagination

Le générateur de requêtes de Laravel facilite la pagination des résultats.

$users = DB::table('users')->paginate(10);
  • Description :
    • La méthode paginate() divise les résultats en pages, affichant 10 résultats par page.

Étape 9 : Transactions

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
    ]);
});
  • Description :
    • La méthode transaction() garantit que les insertions dans la table des utilisateurs et des commandes sont exécutées avec succès. Si l’une ou l’autre échoue, les deux opérations seront annulées.

Étape 10 : Requêtes brutes

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]);
  • Description :
    • La méthode select() peut être utilisée pour exécuter des requêtes SQL brutes.
    • Il utilise des instructions préparées (?) pour la sécurité, empêchant l'injection SQL.

Conclusion

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn