cyber-duck/seeder-generator

从Laravel Telescope自动生成seeders

dev-main 2023-09-08 10:21 UTC

This package is auto-updated.

Last update: 2024-09-08 12:17:58 UTC


README

这是一个从Laravel Telescope条目生成seeders的实验性包。

你可以通过测试它、添加更多自动化测试、文档或功能来做出贡献!

安装

使用Composer将此包作为开发依赖项安装

composer require cyber-duck/seeder-generator --dev

如果你没有使用Laravel包自动发现功能,请将以下服务提供者添加到config/app.php

[
    'providers' => [
        // ...
        \CyberDuck\Seeder\Providers\SeederGeneratorProvider::class,
    ]
];

使用方法

  1. 运行以下命令以获取最后一个Telescope条目

php artisan cyber-duck:telescope:last-entry-uuid

你会收到如下响应

最后一个条目的uuid是:937a170d-1aa2-495c-92e2-33389841bab5 (2021-05-20 15:50:20)

  1. 执行你想要重现的步骤(通过手动或使用Cypress、Laravel Dusk等自动与应用程序交互)

  2. 生成seeder

php artisan cyber-duck:seeder:generate [MySeederClassNameHere] [uuid-entry-here]

配置选项

此包将尽力在不配置任何选项的情况下运行,但你也可以

将表映射到模型

// config/seeder-generator.php
[
    //...
    'tablesDictionary' => [
        'my_table' => 'MyModel'
    ],
];

将静态值映射到变量

你可以将外键的静态值映射到变量

例如,每次查询包含字段'user_id'作为字段或条件时,它将被映射到$userN变量,其中N将根据用户ID动态变化。

[
    //...
    'expectedVariables' => [
        'user_id' => 'user'
    ],
];

你还可以将多态关系映射到变量,该变量的变化取决于模型

[
    //...
    'expectedVariables' => [
        'addressable_id' => 'morph:addressable_type'
    ],
    'morphVariables' => [
        'App\Models\User' => 'user',
    ],
];