codingphase / seeder
为Laravel应用程序提供易于使用的数据库种子工具。
v1.0.11
2019-12-17 19:17 UTC
Requires
- php: >=5.5.9
README
为Laravel应用程序提供易于使用的数据库种子工具
安装
步骤 1: 通过Composer安装
composer require codingphase/seeder
步骤 2: 注册服务提供者
将您的新提供者添加到 config/app.php
文件的 providers
数组中
'providers' => [ // ... CodingPhase\Seeder\SeederServiceProvider::class, // ... ],
发布配置
php artisan vendor:publish --provider="CodingPhase\Seeder\SeederServiceProvider"
使用方法
使用ModelSeeder扩展种子器
use CodingPhase\Seeder\ModelSeeder; class UsersTableSeeder extends ModelSeeder { ... }
实现run方法
/** * Run the database seeds. * * @return void */ public function run { //Example $users = $this->seedModel(\App\User::class, function ($user) { $user->save(); }); }
##API
setAmount(int)
默认种子资源的数量存储在配置中。如果您想种子其他数量的资源,可以设置。
$this->setAmount(30)->seedModel(\App\User::class, function ($user) { $user->save(); });
setHeader(string)
在输出进度条之前定义标题(默认为模型命名空间)
$this->setHeader("Awesome Users")->seedModel(\App\User::class, function ($user) { $user->save(); });
setCompact(bool)
默认为true。定义进度条的风格。
$this->setAmount(30)->seedModel(\App\User::class, function ($user) { $user->save(); });
useData(array)
设置用于填充资源的数据。它覆盖了模型工厂数据。
$data = [ 1 => [ 'name' => 'test', 'email' => 'test@test.com' ], 25 => [ 'name' => 'example' 'email' => 'example@example.com', ], ]; $this->useData($data)->seedModel(\App\User::class, function ($user) { $user->save(); });
- 第一个用户将具有名称
test
和电子邮件test@test.com
- 第25个用户将具有名称
example
和电子邮件example@example.com
##实际示例
use CodingPhase\Seeder\ModelSeeder; class UsersTableSeeder extends ModelSeeder { /** * Run the database seeds. * * @return void */ public function run { $adminsData = [ 1 => [ 'name' => 'test', 'email' => 'test@test.com', 'password' => bcrypt('123456') ], 4 => [ 'name' => 'test4', 'email' => 'test4@test.com', '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(); }); } }