U Laravel ekosistemu, seeder je klasa koja služi za inicijalno popunjavanje baze test podacima.
Evo npr iz jednog projekta na kom radim:
Code:
<?php
use Illuminate\Database\Seeder;
class PatientsTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
foreach (\App\Models\Clinic::all() as $clinic) {
factory(App\Models\Patient::class, 100)
->create(['password' => null]);
}
}
}
u ModelFactory imam ovo:
Code:
<?php
$factory->define(App\Models\Patient::class, function (Faker\Generator $faker) {
return [
'email' => $faker->safeEmail,
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'date_of_birth' => $faker->date(),
'gender' => $faker->numberBetween(1, 2),
'password' => bcrypt(str_random(10)),
];
});
Po setupovanju projekta (uključujući migracije) dovoljno je da pokrenem sledeću komandu i za svaku kliniku u sistemu ću imati 100 random pacijenata:
$ php artisan db:seed --class=PatientsTableSeeder
Tako svaki novi developer (ili novo dev okruženje) može jako brzo da ima popunjenu bazu spremnu za rad.
p.s. Stariji je Laravel, vidim da je sad malo promenjeno kako se definiše model factory
p.p.s. Postoji sličan seeder i za klinike koji se obavezno ispucava pre ovog
[Ovu poruku je menjao Nemanja Avramović dana 26.09.2019. u 10:07 GMT+1]
Laravel Srbija.
[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]