You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel内部应用包中Seeder无法运行的问题及解决方法

Laravel自定义包Seeder无法加载问题排查与解决

我正在为内部Laravel应用开发自定义包,遇到了无法运行包目录下Seeder的问题。

包目录为packages/vendor/packagename,其composer.json中配置的自动加载规则如下:

"autoload": {
    "psr-4": {
        "Vendor\\PackageName\\": "src/",
        "Vendor\\PackageName\\Database\\Factories\\": "database/factories/",
        "Vendor\\PackageName\\Database\\Seeders\\": "database/seeders/"
    }
},

我在路径packages/vendor/packagename/database/seeders/DepartmentSeeder.php下创建了Seeder文件,代码如下:

<?php

namespace Vendor\PackageName\Database\Seeders;

use Illuminate\Database\Seeder;
use Vendor\PackageName\Models\Department;

class DepartmentSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Department::factory()->count(10)->create();
    }
}

尝试运行以下命令执行Seeder:

$ php artisan db:seed --class="Vendor\\PackageName\\Database\\Seeders\\DepartmentSeeder"

却收到报错:

Target class [Vendor\PackageName\Database\Seeders\DepartmentSeeder] does not exist.

如果将seeders目录移到src目录下,运行以下命令可正常工作,但我希望将seeders保留在database目录中:

$ php artisan db:seed --class="Vendor\\PackageName\\seeders\\DepartmentSeeder"

解决方案

在这个案例中,composer dump-autoload并未解决问题,最终通过运行composer update vendor/packagename解决了该问题,希望能帮助遇到类似问题的开发者。

内容的提问来源于stack exchange,提问作者Josh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 23:40:19