amestsantim / laravel-seeder-with-data-generator
此包已被废弃且不再维护。未建议替代包。
使用数据生成 Laravel 种子文件
1.1
2019-05-29 06:57 UTC
Requires
- php: ^7.0
This package is auto-updated.
Last update: 2023-05-12 07:02:45 UTC
README
这是一个 Laravel 包,它为 artisan 命令添加了一个生成器命令(make),可以为您生成数据库种子类。它与内置的种子类生成器类似,但这个生成器允许您向其中传递数据以包含在种子类中。
这在您可能希望将数据库条目包含在部署中(例如角色和权限等)的情况下非常有用。
make:seeder-with-data
安装
composer require amestsantim/laravel-seeder-with-data-generator
使用方法
make:seeder-with-data [options] [--] <tableName> [<data>]
Arguments: tableName The name of the DB table data The data, as a serialized array of named index arrays [default: "[]"] Options: --path[=PATH] Path where the seeder file should be saved --timestamps If present, this switch will enable the automatic insertion of timestamps
示例
php artisan make:seeder-with-data permissions "[['guard_name' => 'web', 'name' => 'Make Seeders'], ['guard_name' => 'web', 'name' => 'Run Seeders']]"
请注意我们使用的格式,数据参数将原样传递。请记住将其放在双引号中。
...这将给您
<?php use Illuminate\Database\Seeder; use Illuminate\Database\Eloquent\Model; class GenericModel extends Model { public $timestamps = false; } class PermissionsTableSeeder extends Seeder { public function run() { $rowArray = [['guard_name' => 'web', 'name' => 'Make Seeders'], ['guard_name' => 'web', 'name' => 'Run Seeders']]; $model = new GenericModel(); $model->setTable('permissions'); foreach ($rowArray as $row) { $model->create($row); } } }
您还可以使用 --path 选项指定生成的种子文件的保存位置,如下所示
php artisan make:seeder-with-data permissions "[['guard_name' => 'web', 'name' => 'Make Seeders'], ['guard_name' => 'web', 'name' => 'Run Seeders']]" --path="/storage/app/seeders"
如果路径中不存在目录,它将创建这些目录。
如果您省略数据参数,则默认使用空数组,这样种子文件仍然可以运行而不会出错,但实际上不会执行任何操作。
指定 --timeStamps 开关将更改模型上的 $timestamps 属性的值为 true。这将启用在插入数据时自动添加 created_at 和 updated_at 字段。命令如下所示
php artisan make:seeder-with-data permissions "[['guard_name' => 'web', 'name' => 'Make Seeders'], ['guard_name' => 'web', 'name' => 'Run Seeders']]" --timestamps