singlequote/laravel-model-seeder

1.0.6 2023-08-12 13:32 UTC

This package is auto-updated.

Last update: 2024-09-12 15:37:49 UTC


README

使用数据库中的数据创建从您的模型生成的种子文件

此包将使用您的模型自动生成种子文件。它支持枢纽关系,以自动同步枢纽表中的模型关系。

Latest Version on Packagist Total Downloads

安装

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)。有关更多信息,请参阅许可证文件