从子文件夹调用数据库播种机

2022-08-31 00:34:17

我想创建一组数据库种子类,专门用于为我正在编写的测试用例添加数据。

我的计划是将它们放在文件夹中:

app/database/seeds/testData/

然后通过以下命令调用播种机:

php artisan db:seed --class="testData/myTestSeeder"

但是我得到一个“类不存在”错误。

是否可以调用位于种子子文件夹中的数据库种子服务器?我在文档中没有看到明确的“是”,但我也没有看到明确的“不”。


答案 1

你不需要编辑你的项目,只要确保运行classmap

composer dump-autoload

将类移动到子文件夹后。

完成此操作后,运行此命令(无需在此处提及testData)

php artisan db:seed --class="myTestSeeder"

答案 2

您需要告诉自动加载器如何加载新类。这是相对简单的;将以下内容添加到属性中的 composer.json 中:classmap

"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php",
        "app/database/seeds/testData"  // <-- Add this
    ]
},

之后,运行,种子文件现在应该已成功加载。composer dump-autoload


推荐