Laravel 5: 未找到 DB 种子类

2022-08-30 13:28:33

我有这个数据库搜索者.php:

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;



    class DatabaseSeeder extends Seeder {

        /**
         * Run the database seeds.
         *
         * @return void
         */
        public function run()
        {
            Model::unguard();

            $this->call('MemberInvitationSeeder');
        }
    }

我有这个文件 MemberInvitationSeeder.php,与 DatabaseSeeder 同级.php文件

<?php

use Illuminate\Database\Seeder;
use App\MemberInvitation;

    class MemberInvitationSeeder extends Seeder {

        public function run()
        {
            MemberInvitation::truncate();

            MemberInvitation::create( [
                'id' => 'BlahBlah' ,//com_create_guid(),
                'partner_id' => 1,
                'fisrt_name' => 'Thats',
                'last_name' => 'Me',
                'email' => 'me@mymail.com',
                'mobile_phone' => '444-342-4234',
                'created_at' => new DateTime
            ] );

        }
    }

现在我打电话

php artisan db:seed

我得到:

[ReflectionException]                        
  Class MemberInvitationSeeder does not exist

我尝试了我能找到的一切,包括“作曲家转储自动加载”。无济于事。我做错了什么?


答案 1

第一步 - 生成种子:

php artisan make:seed MemberInvitationSeeder

第二步 - 在 DatabaseSeeder 中.php添加行:

$this->call(MemberInvitationSeeder::class);

第三步

composer dump-autoload

第四步

php artisan db:seed

这应该有效


如果这不是线索,请检查composer.json文件,并确保在“自动加载”部分中有下面的代码:

"classmap": [
    "database"
],

答案 2

我通过将类添加到播种器文件来解决此问题,并带有以下说明:use

<?php
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use App\YourClassName;

推荐