Créer un seeder dans une application Laravel

Créer un seeder dans une application Laravel

Comment créer un seeder dans une application Laravel.

Qu’est-ce qu’un seeder dans Laravel ? Comment utiliser un seeder dans Laravel ? Quelle est la commande pour créer un seeder dans Laravel ? Et pourquoi avons-nous besoin d’utiliser un seeder ? J

Laravel introduit les seeders pour créer des données de test ou des données par défaut. Par exemple, dans un petit projet administrateur, vous pouvez créer un utilisateur admin et définir des données par défaut pour les tables à l’aide des seeders.

Pourquoi utiliser un seeder ?

Imaginez que vous avez un projet administrateur sans page d’inscription. Vous devez créer au moins un utilisateur admin pour qu’il puisse se connecter et accéder au panneau d’administration. Si vous n’avez pas de page d’inscription, vous devrez créer un utilisateur admin directement dans la base de données. Cela peut être faisable, mais cela signifie recréer un admin manuellement à chaque fois que vous configurez votre projet.

Une meilleure solution consiste à créer un seeder d’administrateur pour automatiser ce processus en une seule commande.

De même, pour des configurations par défaut, vous pouvez créer un seeder de configuration qui ajoute ces paramètres par défaut dans votre table.

1. Créer une classe de seeder

php artisan make:seeder AdminUserSeeder

php artisan make:seeder AdminUserSeeder

Après avoir exécuté cette commande, un fichier AdminUserSeeder.php sera créé dans le dossier database/seeders. Tous les seeders sont stockés dans ce dossier.

2. Ajouter du code au seeder

// database/seeders/AdminUserSeeder.php




<?php
  
namespace Database\Seeders;
  
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use App\Models\User;
  
class AdminUserSeeder extends Seeder
{
    /**
     * Run the database seeds.
     */
    public function run(): void
    {
        User::create([
            'name' => 'Hardik',
            'email' => '',
            'password' => bcrypt('123456'),
        ]);
    }
}

Dans le fichier créé, vous pouvez écrire le code pour créer un utilisateur admin ou toute autre donnée de test. Par exemple, utilisez un modèle pour insérer des données dans la table des utilisateurs.

3. Exécuter le seeder

Vous avez deux options pour exécuter un seeder dans Laravel 11 :

Option 1 : Exécuter un seul seeder

php artisan db:seed --class=AdminUserSeeder

Exécutez la commande suivante pour exécuter un seeder spécifique :

Option 2 : Exécuter tous les seeders

<?php
  
namespace Database\Seeders;
  
use Illuminate\Database\Seeder;
  
class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     */
    public function run(): void
    {
        $this->call(AdminUserSeeder::class);
    }
}

Ajoutez votre seeder à la classe DatabaseSeeder.

Ensuite, utilisez une seule commande pour exécuter tous les seeders répertoriés :

php artisan db:seed

Une fois le seeder exécuté, une ligne sera ajoutée dans la table correspondante, par exemple dans la table users.

Grâce aux seeders dans Laravel 11, vous pouvez automatiser la création de données initiales ou de test dans vos tables. Cela simplifie grandement le déploiement de votre application, en particulier dans des projets nécessitant des données par défaut ou des configurations spécifiques.

par