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