首页 > 解决方案 > 运行数据库播种器时获取类不存在错误

问题描述

我正在 laravel 6.1 中创建播种机,但我不断收到此错误

Illuminate\Contracts\Container\BindingResolutionException :目标类 [AdminsTableSeeder] 不存在。

我尝试运行 composer dump-autoload 和 composer dumpautoload,它对我不起作用。

这是我的 AdminsTableSeeder.php

use App\Models\Admin;
use Faker\Factory as Faker;
use Illuminate\Database\Seeder;

class AdminsTableSeeder extends Seeder
{
/**
 * Run the database seeds.
 *
 * @return void
 */
public function run()
{
    $faker = Faker::create();

    Admin::create([
        'name'      =>  $faker->name,
        'email'     =>  'admin@admin.com',
        'password'  =>  bcrypt('password'),
    ]);
}
}

这是我的 DatabaseSeeder.php <?php

 use Illuminate\Database\Seeder;

 class DatabaseSeeder extends Seeder
 {
/**
 * Seed the application's database.
 *
 * @return void
 */
public function run()
{
   $this->call(AdminsTableSeeder::class);
}
}

标签: laravel

解决方案


确保您的AdminsTableSeeder.php文件位于您的文件所在的同一目录中DatabaseSeeder.php

composer dump-autoload

然后尝试

php artisan db:seed

可选的。

class DatabaseSeeder extends Seeder
{
     /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run(){
        $this->call('AdminsTableSeeder');
    }
}

试试 $this->call('AdminsTableSeeder');这样。


推荐阅读