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

Laravel数据库填充报错:Target class [DatabaseSeeder]不存在

Laravel 执行php artisan db:seed报错:Target class [DatabaseSeeder] does not exist.

错误信息

INFO  Seeding database.

   */
    public function run(): void
    {

        \App\Models\User::factory(10)->create();
        \App\Models\User::factory(2)->unverified()->create();
        \App\Models\Task::factory(20)->create();

        // \App\Models\User::factory()->create([
        //     'name' => 'Test User',
        //     'email' => 'test@example.com',
        // ]);
    }

}

   Illuminate\Contracts\Container\BindingResolutionException

  Target class [DatabaseSeeder] does not exist.

  at vendor/laravel/framework/src/Illuminate/Container/Container.php:914
    910▕
    911▕         try {
    912▕             $reflector = new ReflectionClass($concrete);
    913▕         } catch (ReflectionException $e) {
  ➜ 914▕             throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e);
    915▕         }
    916▕
    917▕         // If the type is not instantiable, the developer is attempting to resolve
    918▕         // an abstract type such as an Interface or Abstract Class and there is

      +22 vendor frames

  23  artisan:37
      Illuminate\Foundation\Console\Kernel::handle()

已尝试操作

  • 确认DatabaseSeeder.php位于database/seeders/目录,文件名无拼写错误
  • 执行composer dump-autoload刷新自动加载文件

修复方案

  • 检查命名空间:确保DatabaseSeeder.php顶部声明了正确的命名空间:

    namespace Database\Seeders;
    

    Laravel 8+版本的Seeder类默认使用该命名空间,缺失会导致类无法被识别。

  • 验证composer.json自动加载配置:打开项目根目录的composer.json,确认autoload的psr-4部分包含Seeders的映射:

    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Seeders\\": "database/seeders/"
        }
    }
    

    若未添加,补充后重新执行composer dump-autoload。

  • 清除Laravel缓存:执行以下命令清除缓存,避免旧配置干扰:

    php artisan config:clear
    php artisan route:clear
    php artisan cache:clear
    
  • 直接指定Seeder类执行:跳过自动查找,手动指定类路径运行命令:

    php artisan db:seed --class=Database\\Seeders\\DatabaseSeeder
    
  • 修复文件语法错误:从错误输出的代码片段可见,文件存在多余的*/和闭合},导致类结构损坏。检查并修正DatabaseSeeder.php的完整结构,示例如下:

    <?php
    
    namespace Database\Seeders;
    
    use Illuminate\Database\Seeder;
    
    class DatabaseSeeder extends Seeder
    {
        public function run(): void
        {
            \App\Models\User::factory(10)->create();
            \App\Models\User::factory(2)->unverified()->create();
            \App\Models\Task::factory(20)->create();
    
            // \App\Models\User::factory()->create([
            //     'name' => 'Test User',
            //     'email' => 'test@example.com',
            // ]);
        }
    }
    

    修正后重新执行composer dump-autoload和php artisan db:seed。

  • 检查文件权限:确保database/seeders/DatabaseSeeder.php拥有可读权限,避免服务器无法读取文件内容。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 10:52:20