【发布时间】:2021-03-11 11:16:11
【问题描述】:
我目前正在学习 Laravel 8 中的数据库播种。运行种子时出现错误消息
找不到类'Database\Seeders\App\Models\Admin'
首先我在 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);
}
但我仍然收到类似的错误消息
播种:Database\Seeders\AdminsTableSeeder PHP 致命错误:在 C:\xam 中找不到特征 'Illuminate\Notification\Notifiable' pp\htdocs\tobacon_web\app\Models\Admin.php 在第 11 行
Symfony\Component\ErrorHandler\Error\FatalError
未找到特征“Illuminate\Notification\Notifiable”
【问题讨论】:
-
App\Models\Admin::create($record);到\App\Models\Admin::create($record); -
嘿,我之前已经尝试过了,但它仍然显示错误消息,您可以查看我已经编辑并解释了问题的帖子
-
use Illuminate\Notification\Notifiable;到use Illuminate\Notifications\Notifiable;修复此问题