Class 'UserTableSeeder' does not exist - Laravel 5.0 [php artisan db:seed]

Viewed 70355

I'm trying a basic php artisan db:seed after migrating my database but it keeps returning the title error in cmd -[ReflectionException] Class 'UserTableSeeder' does not exist

Things I Have Tried

  • Change the namespace of the 'UserTableSeeder.php' File 'namespace Database\seeds;' and 'use Database\seeds\UserTableSeeder;' in the 'DatabaseSeeder.php' File

Below is the migrations

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

    class CreateUsersTable extends Migration {

        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('users', function(Blueprint $table)
            {
                $table->increments('id');
                $table->string('name');
                $table->string('email')->unique();
                $table->string('password', 60);
                $table->rememberToken();
                $table->timestamps();
            });
        }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('users');
    }
}

Below is the UserTableSeeder.php

<?php
use App\User;
use Illuminate\Database\Seeder;

class UserTableSeeder extends Seeder {

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

        User::create(['email' => 'foo@bar.com']);
    }
}

Below is the DatabaseSeeder.php

<?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('UserTableSeeder');
    }
}
5 Answers

Sometimes the code is correct but you need to run the following command in order to run the seeder command. First Run this command

composer dumpautoload

Then seed the seeder

php artisan db:seed --class=CreateUsersTable

I hope it will work

When we change or delete the Controller file or another file then their file should be removed from everywhere in code. You need to run command to refresh your composer

composer dump-autoload

Add namespace in your class.

<?php

namespace Database\Seeders;
...

run composer dump-autoload after that

Related