【问题标题】:Laravel 8. Seeder class does not existLaravel 8. Seeder 类不存在
【发布时间】:2021-04-21 17:27:36
【问题描述】:

这个问题并不新鲜,但我已经在其他线程中查看并尝试了所有建议的解决方案,但没有成功。 我正在使用带有 Homestead 的 Laravel 8,它是 Windows 10 机器上的新安装,而不是升级。 我正在尝试播种一个名为 HotelSeeder.php 的文件。当我运行命令时

php artisan db:seed

我得到下一个错误:

我的 HotelSeeder 课程是这样的:

我的 DatabaseSeeder 类是这样的:

这两个类都位于目录database/seeders

composer.json 中的自动加载是这样的:

在我运行 vagrant upvagrant ssh 之后,我正在运行的命令是:

php composer auto-load

php artisan db:seed

然后错误出现了。

我也试过了:

php artisan db:seed --class=HotelSeeder

php artisan migrate:fresh –seed

php artisan clear:cache

php artisan optimize

似乎没有任何效果。我希望你能帮助我。

【问题讨论】:

  • 始终将代码作为文本而不是图像提供

标签: php laravel class


【解决方案1】:

您的播种程序类名为Database\Seeders\HotelSeeder。在您的 DatabaseSeeder.php 文件中,您应该删除 HotelSeeder 的别名,因为这表示您想为一个名为 HotelSeeder 的根命名空间中的类命名,这不是您的类。如果您删除该别名,那么对 HotelSeeder 的引用实际上将是您正确的类 Database\Seeders\HotelSeeder,因为此文件的当前命名空间是 Database\Seeders,因此所有类引用都指向该命名空间。

删除:use HotelSeeder;

只是一个 PHP 命名空间的东西。

【讨论】:

    【解决方案2】:

    试试命令:

    composer dump-autoload --optimize
    

    然后:

    php artisan db:seed
    

    【讨论】:

      猜你喜欢
      • 2017-11-17
      • 2015-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多