Una delle (molte) pregevoli caratteristiche di Laravel è la possibilità di allestire un database alimentandolo con dati di test (fake) che in Laravel è facilissima grazie ad una classe Faker scritta da François Zaninotto.
Dopo aver creato il file per la migrazione di una tabella Articles, Artisan ci mette a disposizione la funzionalità seeder cioè alimentatore:
$ php artisan make:seeder ArticlesTableSeeder
Questo comando costruisce la classe che servirà ad alimentare la tabella: sotto la directory /database/seeds troviamo la nuova classe dell’alimentatore del db:
use Illuminate\Database\Seeder; use App\Article; class ArticlesTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { Article::truncate(); $faker = \Faker\Factory::create(); // And now, let's create a few articles in our database: for ($i = 0; $i < 50; $i++) { Article::create([ 'title' => $faker->sentence, 'body' => $faker->paragraph, ]); } } }
quindi facciamo girare Faker che alimenta con dati più o meno casuali la tabella
$ php artisan db:seed --class=ArticlesTableSeeder
Possiamo automatizzare il tutto al momento della creazione del database inserendo la chiamata ai metodi in fase di migrazione:
class DatabaseSeeder extends Seeder { public function run() { $this->call(ArticlesTableSeeder::class); $this->call(UsersTableSeeder::class); ... } }
Non resta che lanciare il comando
$ php artisan db:seed
Commenti recenti