当我运行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);
}
}
发布于 2014-10-01 22:50:33
您需要将SongsTableSeeder
放入DatabaseSeeder.php
文件所在目录下的SongsTableSeeder.php
文件中。
并且你需要在你的控制台中运行:
composer dump-autoload
要生成新的类映射,然后运行:
php artisan db:seed
我刚刚测试过了。它在Laravel 5中可以正常工作
发布于 2016-02-10 20:58:33
我通过这样做解决了这个问题:
这是因为我更改了文件名。我不知道为什么它在改变后不起作用。
发布于 2017-08-03 20:36:44
文件SongsTableSeeder.php应位于database/seeds目录或其子目录中。
您需要运行以下命令:
composer dump-autoload
然后:
php artisan db:seed
或者:
php artisan db:seed --class=SongsTableSeeder
https://stackoverflow.com/questions/26143315
复制相似问题