When I run php artisan db:seed I am getting the following error:
[ReflectionException] Class SongsTableSeeder does not exist
What is going on?
My DatabaseSeeder class:
<?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');
}
}
My SongsTableSeeder class:
<?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);
}
}
What I did is to recreate the
Seeder
again and it works for me.php artisan make:seeder UsersTableSeeder
If you have copied the seeders files from any other project then you need to run the artisan command
php artisan db:seed
otherwise it is fine.File SongsTableSeeder.php should be in database/seeds directory or in its subdirectory.
You need to run:
and then:
or:
I have used only SINGLE FILE with TWO classes in it following :
I solved it by doing this:
This happened because I made a change in the filename. I don't know why it didn't work after the change.
I had the same "reflection exception" error. The solution was to copy the class file to the server, from dev, for me. dumb mistake, but given how many files we deal with its easy to forget to copy them over to the server every time.