Laravel 10 Seeder报错找不到类,php artisan db:seed执行失败
Laravel Seeder 报错:找不到 app\Models\Article 类
我遇到了和某Stackoverflow问题完全一样的情况,但上面的解决方案都不管用。我跟着一个Laravel API教程操作,却卡在了Laravel Seeder失败这里。
相关代码
模型文件(app\Models\Article.php)
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Article extends Model { use HasFactory; protected $table = 'articles'; protected $fillable = ['title', 'body']; }
填充器文件(database\seeders\ArticlesTableSeeder.php)
<?php namespace Database\Seeders; use Illuminate\Database\Console\Seeds\WithoutModelEvents; use Illuminate\Database\Seeder; use app\Models\Article; class ArticlesTableSeeder extends Seeder { /** * Run the database seeds. */ public function run(): void { Article::truncate(); $faker = \Faker\Factory::create(); // 创建50条测试文章数据 for ($i = 0; $i < 50; $i++) { Article::create([ 'title' => $faker->sentence, 'body' => $faker->paragraph, ]); } } }
报错信息
执行命令 php artisan db:seed --class=ArticlesTableSeeder 时,出现错误:
Class "app\Models\Article" not found
我已经尝试清除缓存,多次执行 composer dump-autoload,但问题仍未解决。
解决方案
问题出在填充器文件的命名空间引用上:
在 ArticlesTableSeeder.php 中,你写的是:
use app\Models\Article;
PHP的命名空间严格区分大小写,正确的引用应该是大写开头的 App:
use App\Models\Article;
修改后依次执行以下命令即可:
composer dump-autoload php artisan db:seed --class=ArticlesTableSeeder
如果问题依旧,可先清除Laravel配置缓存后再重试:
php artisan config:clear php artisan cache:clear
内容的提问来源于stack exchange,提问作者fat penguin
相关产品推荐
相关产品推荐

