Laravel 8 类 'Database\Seeders\App\Models\Admin' 未找到
Posted
技术标签:
【中文标题】Laravel 8 类 \'Database\\Seeders\\App\\Models\\Admin\' 未找到【英文标题】:Laravel 8 Class 'Database\Seeders\App\Models\Admin' not foundLaravel 8 类 'Database\Seeders\App\Models\Admin' 未找到 【发布时间】: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;
修复此问题
【参考方案1】:
在您的 AdminsTableSeeder.php 文件中,更改以下行:
App\Models\Admin::create($record);
到
\App\Models\Admin::create($record);
或在文件顶部添加一条使用语句use App\Models\Admin
,然后将代码编辑为Admin::create($record)
。
【讨论】:
嘿,我已经尝试修改代码,但我认为出现了另一个问题。你可以看到我编辑过的帖子,在我修改代码后我已经在那里解释了错误说“未找到 Trait 'Illuminate\Notification\Notifiable'”Notifiable
特征在 Illuminate\Notifications\Notifiable
中找到。您正尝试从Illuminate\Notification\Notifiable
使用它。这就是您收到错误的原因。【参考方案2】:
如果您复制 User.php 以创建 Admin.php 模型,则可能会出现此错误。
纠正这个检查
Admin.php
//change
class User extends Authenticatable
//to
class Admin extends Authenticatable
【讨论】:
欢迎来到 Stack Overflow!请花点时间阅读editing help 中的help center。 Stack Overflow 上的格式与其他网站不同。以上是关于Laravel 8 类 'Database\Seeders\App\Models\Admin' 未找到的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 8:找不到类'App\Policies\Gate'
PHP 错误:类 'Illuminate/Foundation/Auth/Admin' [Laravel 8]