singlequote / laravel-model-seeder
Requires
- php: ^8.0
- laravel/framework: >=9
- stichoza/google-translate-php: ^4.1
README
使用数据库中的数据创建从您的模型生成的种子文件
此包将使用您的模型自动生成种子文件。它支持枢纽关系,以自动同步枢纽表中的模型关系。
安装
composer require singlequote/laravel-model-seeder --dev
用法
该包有一个命令行工具,带有一些选项。下面的命令将使用Laravel的默认文件夹结构生成种子文件。种子文件将创建在database/seeders
,您的模型应位于App\Models
。
php artisan seed:make
模型事件
默认情况下,Laravel会将WithoutModelEvents
特质添加到您的种子文件中。该包出于同样的原因也这样做。如果您想使用模型事件,可以在命令中添加--with-events
选项。
php artisan seed:make --with-events
更改包行为
如果您已将模型移动到另一个位置或将模型文件夹重命名为其他名称,您可以在包的配置中更改此设置。
发布配置
使用命令,您可以发布配置并对其进行编辑。
php artisan vendor:publish --tag=model-seeder
配置文件的默认内容如下
<?php return [ /** * The relative path from your root to your models location * You can add multiple model paths */ 'models_path' => [ "app/Models" ], /** * The relative path from your root to the location where the seeders will be generated */ 'output_path' => "database/seeders", /** * These columns will be excluded from your seeders */ 'exclude_columns' => [ "id", ], ];
更改模型位置和种子输出
您可以使用配置或使用命令行中的--path
选项更改您的模型位置。例如,如果您正在使用包中的模块,并且想要为您的模块创建种子文件。
php artisan seed:make --path=Modules/TestModule/App/Models
种子输出位置
该包将尝试通过检查项目的文件夹结构来检测输出目录,并查找database
文件夹。
如果您已更改此设置,而包无法检测输出路径,您可以在命令中提供一个输出路径选项。
php artisan seed:make --path=Modules/TestModule/App/Models --output=database/seeders
自动检索所有模型
如果您有多个模型位置并且想为它们创建种子文件,可以使用--path=auto
选项。此选项将导入所有声明的类并检查它们是否扩展了Model::class
。
php artisan seed:make --path=auto
排除模型
默认情况下,该包将为给定路径中的每个模型创建种子文件。您可以使用--only=..
选项排除其他模型。
php artisan seed:make --only=User,Roles
按列排序种子数据
默认情况下,该包将按id
列的顺序生成数据。您可以使用orderBy
选项进行更改。
php artisan seed:make --orderBy=created_at
或按降序排序
php artisan seed:make --orderByDesc=created_at
贡献
有关详细信息,请参阅CONTRIBUTING。
Postcardware
您可以使用此包,但如果它进入您的生产环境,我们非常希望您能从您家乡寄给我们一张明信片,说明您正在使用我们的哪些包。
我们的地址是:Quotec,Traktieweg 8c 8304 BA,Emmeloord,荷兰。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。