首页 文章

运行php Artisan db:seed时找不到Laravel 5类DatabaseSeeder

提问于
浏览
0

我是Laravel的新手,当我运行php artisan db:seed我收到以下消息:

[ReflectionException]类DatabaseSeeder不存在

我已经忘了运行composer dump-autoload而没有任何结果 . 我的 class 位于默认文件夹/种子中

该类的代码:

<?php namespace database\seeds;

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use App\User;
use App\Country; 

class DatabaseSeeder extends Seeder {

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

        $this->call('CountryTableSeeder');
        $this->call('UserTableSeeder');
    }


}

class UserTableSeeder extends Seeder {

    public function run() {
        DB::table('users');

        User::Create(['username' => 'Bart', 'email'=>'bart@example.com', 'password' => Hash::make('password')]); 
    }
}

class CountryTableSeeder extends Seeder { 
    public function run() {
        DB::table('country');

        Country::Create(['country_name' => 'Nederlander']);
    }
}

我做错了什么?

2 回答

  • 0

    首先你应该删除@1675604_,如@JoeCoder在评论中建议的那样 .

    第二件事是你不应该把很多类放在一个文件中(因为你可能看过你的问题) . 每个类应放在单独的文件中 .

  • 2

    如果你已经尝试了其他所有内容并仍然获得了 Class DatabaseSeeder does not exist ,请看看你的 composer.json

    应该有一个看起来像这样的部分:

    "autoload": {
            "classmap": [
                "app/Library",
                "app/Models"
            ],
    ...
    

    你应该在这里再添加两行来告诉自动加载器它应该在哪里寻找你的类 .

    所以最终结果将是:

    "autoload": {
            "classmap": [
                "app/Library",
                "app/Models",
                "database/seeds",
                "database/migrations"
            ],
    ...
    

    这会将 seedsmigrations 目录添加到您的自动加载器类路径中 .

相关问题