我是Laravel的新手,当我运行php artisan db:seed我收到以下消息:
[ReflectionException]类DatabaseSeeder 不存在
我已经遗憾地运行了composer dump-autoload而没有任何结果。 我的班级位于默认文件夹/ seeds
班级代码:
<?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']);
}
}
我做错了什么?
答案 0 :(得分:2)
首先,您应该删除{JARCoder在评论中建议的namespace database\seeds;
。
第二件事是你不应该把很多类放在一个文件中(因为你可能看过你的问题)。每个类应放在单独的文件中。
答案 1 :(得分:0)
如果您已经尝试了所有其他内容并仍然获得Class DatabaseSeeder does not exist
,请查看您的composer.json
应该有一个类似于:
的部分 "autoload": {
"classmap": [
"app/Library",
"app/Models"
],
...
你应该在这里添加两行来告诉自动加载器它应该在哪里查找你的类。
所以最终结果将是:
"autoload": {
"classmap": [
"app/Library",
"app/Models",
"database/seeds",
"database/migrations"
],
...
这会将seeds
和migrations
目录添加到您的自动加载器类路径中。