Je me retrouve souvent à consulter la documentation de Laravel chaque fois que j'ai besoin de créer de nouvelles usines et de nouveaux seeders pour mes projets, qu'il s'agisse d'exercices d'apprentissage, de projets de loisirs ou d'applications du monde réel ( je m'ennuie de faire les mêmes actions à chaque fois). Pour faciliter ce processus, j'ai décidé de créer un guide auquel je peux me référer en cas de besoin, ce qui permet de gagner du temps et d'éviter d'avoir à parcourir une documentation approfondie. Si ce guide aide quelqu'un d'autre, ce serait une bonne chose !
Supposons que nous ayons une relation Utilisateur/Messages, ce qui signifie que chaque utilisateur peut avoir une ou plusieurs publications et que chaque publication appartient à un utilisateur.
Qu'est-ce qu'une usine ?
Une usine dans Laravel est une classe permettant de générer des données de test pour votre application. Ceci est utile pour le développement local et les environnements de préparation, offrant de nombreux avantages. Laravel vous permet de créer une usine pour chaque modèle dont vous disposez.
Que sont les Seeders ?
Les seeders dans Laravel sont utilisés pour remplir votre base de données avec des données à l'aide de classes seed, ce qui est particulièrement utile à des fins de test.
Générer de nouvelles usines
Pour créer une nouvelle usine, exécutez la commande suivante :
php artisan make:usine PostFactory
Vous trouverez votre classe d'usine dans le répertoire database/factories. Voici un exemple de définition de votre usine :
public function definition(): array { return [ 'title' => $this->faker->sentence, 'content' => $this->faker->paragraph, 'user_id' => User::factory(), ]; }
Génération de seeders
Pour créer un nouveau seeder, exécutez la commande suivante :
php artisan make:seeder PostSeeder
Vous trouverez la classe seeder dans le répertoire database/seeders. Voici un exemple de la fonction run au sein de cette classe :
public function run(): void { Post::factory() ->count(20) ->create(); }
Dans le même répertoire, vous trouverez la classe DatabaseSeeder. Assurez-vous qu'il inclut tous vos semoirs :
public function run(): void { // \App\Models\User::factory(10)->create(); // \App\Models\User::factory()->create([ // 'name' => 'Test User', // 'email' => '[email protected]', // ]); $this->call([ PostSeeder::class, .., .. ]); }
Exécuter des migrations et amorcer la base de données
Tout d'abord, exécutez les migrations de bases de données :
php artisan migrer
Ensuite, amorcez la base de données :
base de données artisan php:seed
Vous disposez désormais de données de test. Apprécier!
Publié à l'origine sur mon blog !
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