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
我目前正在 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