Easy seeding database for Laravel Applications
composer require codingphase/seeder
Add your new provider to the providers
array of config/app.php
:
'providers' => [
// ...
CodingPhase\Seeder\SeederServiceProvider::class,
// ...
],
Publish config
php artisan vendor:publish --provider="CodingPhase\Seeder\SeederServiceProvider"
Extend your seeders with ModelSeeder:
use CodingPhase\Seeder\ModelSeeder;
class UsersTableSeeder extends ModelSeeder
{
...
}
Implement run method:
/**
* Run the database seeds.
*
* @return void
*/
public function run
{
//Example
$users = $this->seedModel(\App\User::class, function ($user) {
$user->save();
});
}
##API:
Default amount of seeding resources that are seeded are stored in config. If you want to seed another value of resources, you can.
$this->setAmount(30)->seedModel(\App\User::class, function ($user) {
$user->save();
});
Define header before progress bar in output (default is model namespace)
$this->setHeader("Awesome Users")->seedModel(\App\User::class, function ($user) {
$user->save();
});
Default true. Define style of Progress Bar.
$this->setAmount(30)->seedModel(\App\User::class, function ($user) {
$user->save();
});
Set data that will be used to fill resources. It overrides model factory data.
$data = [
1 => [
'name' => 'test',
'email' => '[email protected]'
],
25 => [
'name' => 'example'
'email' => '[email protected]',
],
];
$this->useData($data)->seedModel(\App\User::class, function ($user) {
$user->save();
});
- first user will have name
test
and email[email protected]
- 25th user will have name
example
and email[email protected]
##Practical Examples
use CodingPhase\Seeder\ModelSeeder;
class UsersTableSeeder extends ModelSeeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run
{
$adminsData = [
1 => [
'name' => 'test',
'email' => '[email protected]',
'password' => bcrypt('123456')
],
4 => [
'name' => 'test4',
'email' => '[email protected]',
'password' => bcrypt('654321')
],
];
$admins = $this->useData($adminsData)
->setAmount(5)
->setHeader("Seeding Admins")
->setCompact(false)
->seedModel(\App\User::class, function ($user) {
$user->admin = 1;
$user->save();
});
$users = $this->setHeader("Seeding Regular Users")
->seedModel(\App\User::class, function ($user) {
$user->save();
});
}
}