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

Susan Sarandon
Libérer: 2024-09-23 06:22:02
original
575 Les gens l'ont consulté

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
Copier après la connexion

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
Copier après la connexion

Exécuter des migrations pour créer des tables par défaut :

php artisan migrate
Copier après la connexion

É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
Copier après la connexion

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!']);
    }
}
Copier après la connexion

É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();
Copier après la connexion
  • 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"
    }
]
Copier après la connexion

É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'),
]);
Copier après la connexion
  • 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'
    ]);
Copier après la connexion
  • 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();
Copier après la connexion
  • 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();
Copier après la connexion
  • 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);
Copier après la connexion
  • 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
    ]);
});
Copier après la connexion
  • 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]);
Copier après la connexion
  • 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!

source:dev.to
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!