LARAVEL 8: Class 'Database\Seeders\DB' 未找到

LARAVEL 8: Class 'Database\Seeders\DB' not found

我正在使用播种器来填充我的 users table,因此我创建了一个名为 UserSeeder 的新播种器,然后我将这些代码添加到其中:

public function run()
{
    foreach(range(1,10) as $item)
    {
        DB::table('users')->insert([
            'name' => "name $item",
            'email' => "email $item",
            'email_verified_at' => now(),
            'password' => "password $item" 
        ]);
    }
}

之后我尝试了 php artisan db:seed --class=UserSeeder 但它显示:

Error

Class 'Database\Seeders\DB' not found

与这一行相关的是:

DB::table('users')->insert([

那为什么在那里找不到,我现在该怎么办?

那是因为 Laravel 将在当前命名空间 Database\Seeders.

中查找数据库 class

因为 Laravel 在 config/app.php 中定义了外观,这允许您使用那些没有完整 class 名称的 classes。

    'DB' => Illuminate\Support\Facades\DB::class,

您可以在命名空间声明之后声明 DB class

use DB;

或仅将其与反斜杠一起使用。

    \DB::table('users')->insert([

在 UserSeeder Class 添加:

使用Illuminate\Support\Facades\DB;