[英]Target class [PersonTableSeeder] does not exist
我正在嘗試運行php artisan db:seed
但在運行此命令php artisan db:seed --class=PersonTableSeeder
出現此錯誤:
Target class [PersonTableSeeder] does not exist.
database/seeders/DatabaseSeeder.php:14
Illuminate\Database\Seeder::call("PersonTableSeeder")
+24 vendor frames
34 artisan:37
Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
PS 每個人都說要運行composer dump-autoload
但這並不能幫助我解決這個問題。 我也嘗試了這些命令但沒有結果:
php artisan optimize
php artisan clear:cache
composer clearcache
composer dump-autoload
我還確保 DatabaseSeeder 和 PersonTableSeeder 文件都在同一個文件夾中
這是我的代碼:
DatabaseSeeder.php
<?php
use Illuminate\Database\Seeder;
class DatabaseSeeder extends Seeder
{
/**
* Seed the application's database.
*
* @return void
*/
public function run()
{
$this->call(PersonTableSeeder::class);
}
}
PersonTableSeeder:
<?php
use Illuminate\Database\Seeder;
use App\Person;
class PersonTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
factory(Person::class, 50)->create();
}
}
個人工廠:
<?php
use Faker\Generator as Faker;
$factory->define(App\Person::class, function (Faker $faker) {
return [
'first_name' => $faker->firstName,
'last_name' => $faker->lastName,
'email' => $faker->safeEmail,
'phone' => $faker->phoneNumber,
'city' => $faker->city,
];
});
對於那些登陸此頁面仍在尋找答案的人,如果您運行composer dump-autoload
它將解決您的問題!
很簡單,只要做一個
composer dump-autoload
它對我有用
問題出在 Laravel 的版本上,因為我正在學習較舊的教程。 教程是5.8.11版本我新建的laravel是8.9版本。 在克隆 github repo 並安裝所有東西后,我讓它工作了。 但是想了解為什么我會收到此錯誤,因為將 laravel 從 8.9 降級到 5.8.11 真的很痛苦,現在我收到了一個奇怪的錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.