我正在为我的应用创建一个Admin auth,并使用artisan命令生成模型:
php artisan make:model Admin -m
这是生成的类:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Admin extends Model
{
//
}
这创建了一个空模型和一个基本迁移。我将这些行添加到迁移中:
public function up()
{
Schema::create('admins', function (Blueprint $table) {
$table->increments('id');
$table->string('name', 32);
$table->string('username', 32);
$table->string('email', 320);
$table->string('password', 64);
$table->string('remember_token', 100)->nullable();
$table->timestamps();
});
}
然后我用命令行创建了一个播种器:
php artisan make:seeder AdminTableSeeder
并将播种机添加到DatabaseSeeder
public function run()
{
$this->call(AdminTableSeeder::class);
}
但是当我运行播种器php artisan db:seed
时,我得到一个类错过错误:
PHP致命错误:第15行的/laravelpath/database/seeds/AdminTableSeeder.php中找不到“管理员”类
[Symfony的\元器件\调试\异常\ FatalErrorException]
未找到“管理员”类
似乎是Admin模型。
我尝试运行修正composer update
和composer dump-autoload
,但他们没有帮助。
任何人都知道发生了什么?为什么我会收到此错误以及如何解决?
额外信息:我在某个地方读到了我应该为我的应用命名所以我执行了php artisan app:name MyAppName
并且它在任何地方添加了命名空间(至少在Http
文件夹中)。我不确定它是否搞砸了我的课程。
@edit 1
这是AdminTableSeeder
use Illuminate\Database\Seeder;
class AdminTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
DB::table('admins')->delete();
Admin::create(array(
'name' => 'Victor Ferreira',
'username' => 'victorferreira',
'email' => 'victor.ferreira@live.com',
'password' => Hash::make('123456'),
));
}
}
答案 0 :(得分:1)
在您的AdminTableSeeder.php
中use App\Models\Admin;
查看您的Admin模型,它位于App \ Models命名空间下,这意味着您的Admin模型位于app / Models /文件夹下。如果您的管理员不在app / Models文件夹下,则不起作用,然后从管理员模型中删除模型并创建名称空间App \ Admin
答案 1 :(得分:1)
您是否通过运行此命令进行了检查?
composer dump-autoload
您必须运行此命令才能自动加载所有新创建的文件。
答案 2 :(得分:0)
在运行或执行播种机文件
之前运行以下命令composer dump-autoload -o