Cannot resolve this error: "Target class [DatabaseSeeder] does not exist."

Cannot resolve this error: "Target class [DatabaseSeeder] does not exist."

很多人问过这个错误:Target class [DatabaseSeeder] 不存在。它似乎有很多根本原因,但我无法确定我的根本原因。 我正在使用 Laravel 6.20.43。在浏览器中运行时软件不会产生任何错误。

错误

当我使用这个命令时出现错误:php artisan db:seed

这里是DatabaseSeeder.php:

<?php

namespace Database\seeds;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Eloquent\Model;
use App\User;


class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        // factory$this->call(UsersTableSeeder::class);
        // factory(App\User::class, 10)->create();
        // dd('DatabaseSeeder.php TESTING...');
    }
}

我尝试了什么?

Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover --ansi
Discovered Package: facade/ignition
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.
Generated optimized autoload files containing 4381 classes
   Illuminate\Contracts\Container\BindingResolutionException  : Target class [DatabaseSeeder] does not exist.

  at /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Container/Container.php:805
    801| 
    802|         try {
    803|             $reflector = new ReflectionClass($concrete);
    804|         } catch (ReflectionException $e) {
  > 805|             throw new BindingResolutionException("Target class [$concrete] does not exist.", 0, $e);
    806|         }
    807| 
    808|         // If the type is not instantiable, the developer is attempting to resolve
    809|         // an abstract type such as an Interface or Abstract Class and there is

  Exception trace:

  1   ReflectionException::("Class DatabaseSeeder does not exist")
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Container/Container.php:803

  2   ReflectionClass::__construct()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Container/Container.php:803

  3   Illuminate\Container\Container::build()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Container/Container.php:681

  4   Illuminate\Container\Container::resolve()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:785

  5   Illuminate\Foundation\Application::resolve()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Container/Container.php:629

  6   Illuminate\Container\Container::make()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:770

  7   Illuminate\Foundation\Application::make()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php:76

  8   Illuminate\Database\Console\Seeds\SeedCommand::getSeeder()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php:63

  9   Illuminate\Database\Console\Seeds\SeedCommand::Illuminate\Database\Console\Seeds\{closure}()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/GuardsAttributes.php:129

  10  Illuminate\Database\Eloquent\Model::unguarded()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Database/Console/Seeds/SeedCommand.php:64

  11  Illuminate\Database\Console\Seeds\SeedCommand::handle()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:36

  12  Illuminate\Container\BoundMethod::Illuminate\Container\{closure}()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Container/Util.php:37

  13  Illuminate\Container\Util::unwrapIfClosure()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:93

  14  Illuminate\Container\BoundMethod::callBoundMethod()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Container/BoundMethod.php:37

  15  Illuminate\Container\BoundMethod::call()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Container/Container.php:590

  16  Illuminate\Container\Container::call()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Console/Command.php:134

  17  Illuminate\Console\Command::execute()
      /home/billybob/laravel-cursus1/vendor/symfony/console/Command/Command.php:255

  18  Symfony\Component\Console\Command\Command::run()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Console/Command.php:121

  19  Illuminate\Console\Command::run()
      /home/billybob/laravel-cursus1/vendor/symfony/console/Application.php:1009

  20  Symfony\Component\Console\Application::doRunCommand()
      /home/billybob/laravel-cursus1/vendor/symfony/console/Application.php:273

  21  Symfony\Component\Console\Application::doRun()
      /home/billybob/laravel-cursus1/vendor/symfony/console/Application.php:149

  22  Symfony\Component\Console\Application::run()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Console/Application.php:93

  23  Illuminate\Console\Application::run()
      /home/billybob/laravel-cursus1/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:131

  24  Illuminate\Foundation\Console\Kernel::handle()
      /home/billybob/laravel-cursus1/artisan:37

我真的无法理解如何调试 php artisan db:seed -vvv 的输出。所有这些文件都位于供应商目录中,这意味着我无法轻松检查程序流程。也请说明我以后如何自己调试这样的错误。

找不到您的 DatabaseSeeder class 因为您的命名空间不正确。

您需要将 DatabaseSeeder class 的命名空间从:

更改为
namespace Database\seeds;

至:

namespace Database\Seeders;

确保您的 Composer 自动加载设置正确:

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

或者,从您的 DatabaseSeeder class 并将上述更改还原为 composer.json 然后 运行:

composer dump-autoload

然后尝试 运行宁:

php artisan migrate:fresh --seed