(remplir automatiquement sa base de données)
php artisan make:seeder UsersTableSeederCela va créer un fichier de seed dans le dossier
/database/seeds
Fichier ⇒ UsersTableSeeder.php
public function run() { DB::table('users')->insert([ 'name' => Str::random(10), 'email' => Str::random(10).'@gmail.com', 'password' => bcrypt('secret'), ]); }
use Illuminate\Database\Seeder; use Carbon\Carbon; use Illuminate\Support\Facades\DB; class UsersTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { DB::table('users')->insert([ 'name' => 'gilles', 'email' => 'gilles@domaine.com', 'password' => bcrypt('admin'), 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s'), ]); DB::table('users')->insert([ 'name' => 'gael', 'email' => 'gael@domaine.com', 'password' => bcrypt('user'), 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s'), ]); DB::table('users')->insert([ 'name' => 'romane', 'email' => 'romane@domaine.com', 'password' => bcrypt('user'), 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s'), ]); } }
Pour gérer les dates et les heures, on utilise la bibliothèque Carbon ⇒ https://carbon.nesbot.com/docs/
Afin de mettre à jour l'autoloader (système qui charge les Class automatiquement), il faut faire
composer dump-autoload
Afin de pouvoir lancer tous les seeds, il faut ajuster le fichier database/seeds/DatabaseSeeder.php
. Dans cette exemple, on ajoute trois seeds précédemment créés: Users
, Posts
et Categories
class DatabaseSeeder extends Seeder { public function run() { $this->call(UsersTableSeeder::class); $this->call(PostsTableSeeder::class); $this->call(CategoriesTableSeeder::class); } }
Puis dans le terminal, on peut lancer les seeds
php artisan db:seed
Si on souhaite lancer un seul seed, il faut le préciser comme ceci:
php artisan db:seed --class=UsersTableSeeder
php artisan migrate:refresh --seed
Voir l'exemple dans le fichier
\database\factories\UserFactory.php
Utilise la bibliothèque Faker afin de générer des fausses données.
Dans le fichier
\database\seeders\DatabaseSeeder.php
On configure le nombre de fois que l'on veut exécuter la Factory
public function run() { \App\Models\User::factory(10)->create(); }
Puis on lance le seed
php artisan db:seed --class=UsersTableSeeder