Je me retrouve souvent à consulter la documentation Laravel chaque fois que j'ai besoin de créer de nouvelles usines et 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 développement, offrant de nombreux avantages. Laravel vous permet de créer une usine pour chaque modèle que vous possédez.
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 de départ, 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:factory 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érer des 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' => 'test@example.com', // ]); $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 :
php artisan db:seed
Vous disposez désormais de données de test. Profitez-en !
Publié à l'origine sur mon blog !
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!