Laravel 5 - artisan 种子 [ReflectionException] 类 SongsTableSeeder 不存在

标签 laravel composer-php laravel-5 laravel-artisan

当我运行 php artisan db:seed 时,出现以下错误:

[ReflectionException] Class SongsTableSeeder does not exist

这是怎么回事?

我的DatabaseSeeder 类:

<?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('SongsTableSeeder');
    }

}

我的SongsTableSeeder 类:

<?php

// Composer: "fzaninotto/faker": "v1.4.0"
use Faker\Factory as Faker;
use Illuminate\Database\Seeder;
use DB;

class SongsTableSeeder extends Seeder {

    public function run()
    {
        $faker = Faker::create();
        $songs = [];
        foreach(range(1, 10) as $index)
        {
            $songs[] = ['title' => $faker->words(rand(1,4))];
        }

        DB::table('songs')->insert($songs);

    }

}

最佳答案

您需要将 SongsTableSeeder 放入 SongsTableSeeder.php 文件中,该文件位于 DatabaseSeeder.php 文件所在的同一目录中。

并且您需要在控制台中运行:

composer dump-autoload

生成新的类映射,然后运行:

php artisan db:seed

我刚刚测试过。它在 Laravel 5 中运行没有问题

关于Laravel 5 - artisan 种子 [ReflectionException] 类 SongsTableSeeder 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26143315/

相关文章:

php - 使用外键和限制约束的 Laravel Softdelete?

php - 使用 laravel eloquent 创建子查询

php - Laravel 5.2 中的 Mysql 高级联接

php - 注销事件 (Laravel 7)

php - 在 model->save() 期间获取一个 id;

laravel - 具有 2 个可选参数的路由,可以选择其中之一

php - 如何在 Laravel 的中间件中获取路由

installation - Composer如何指定安装目录

PHP Composer : No Dev Mode that Sticks

cakephp - 编写 wyrihaximus/ratchet 时出错(CakePHP 插件)