Laravel 8 Class 'Database\Seeders\App\Models\Admin' 未找到

Laravel 8 Class 'Database\Seeders\App\Models\Admin' not found

我目前正在 Laravel 8 学习数据库播种。当 运行nning 种子时,我收到一条错误消息

Class 'Database\Seeders\App\Models\Admin' not found

首先,我在 App\Models 中创建了名为 Admin.php 的迁移数据库文件,然后将这些代码放入

<?php

namespace App\Models;

use Illuminate\Notification\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
//use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;


class Admin extends Authenticatable
{
    use Notifiable;
    protected $guard = 'admin';
    protected $fillable = [
        'name', 'type','email','password','image','status','created_at','updated_at',
    ];
    protected $hidden = [
        'password', 'remember_token',
    ];
}

之后,我创建了一个名为 AdminsTableSeeder.php 的播种机,并将这些代码放入

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use DB;

class AdminsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('admins')->delete();
        $adminRecords = [
            [
                'id'=>1, 
                'name'=>'admin', 
                'type'=>'admin',
                'email'=>'admin@admin.com',
                'password'=>'',
                'image'=>'',
                'status'=>1,
            ],
        ];
        foreach ($adminRecords as $key => $record){
            App\Models\Admin::create($record);
        }
    }
}

最后在 DatabaseSeeder.php 我把这些代码调用 AdminsTableSeeder

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

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

    }
}

完成所有这些操作后,我执行了 composer du 并尝试 运行 种子命令,但我收到了错误消息。

编辑 我已经尝试修改来自

的代码
foreach ($adminRecords as $key => $record){
            App\Models\Admin::create($record);
        }

foreach ($adminRecords as $key => $record){
            \App\Models\Admin::create($record);
        }

但我仍然收到类似

的错误消息

Seeding: Database\Seeders\AdminsTableSeeder PHP Fatal error: Trait 'Illuminate\Notification\Notifiable' not found in C:\xam pp\htdocs\tobacon_web\app\Models\Admin.php on line 11

Symfony\Component\ErrorHandler\Error\FatalError

Trait 'Illuminate\Notification\Notifiable' not found

在您的 AdminsTableSeeder.php 文件中,更改行:

App\Models\Admin::create($record);

\App\Models\Admin::create($record);

或在文件顶部添加一个 use 语句作为 use App\Models\Admin 并将代码编辑为 Admin::create($record).

如果您复制 User.php 以创建 Admin.php 模型,则可能会出现此错误。

更正此检查

Admin.php

//change 

class User extends Authenticatable


//to 

class Admin extends Authenticatable