Laravel

Laravel 8 database factory not found!

For some reason, if you change the model directory in laravel 8, you may face issues with creating the factory. It will show you the following error-

Class 'Database\Factories\Your\Directory\Models\ModelFactory' not found

It's because of the way laravel 8 changes the factory.

#Solution

Now in your, every model (that has factory) need to define a new method like that way-


protected static function newFactory()
    {
        return \Your\Directory\Database\Factories\ModelFactory::new();
    }

If you think your database factories will be in \Your\Directory permanently, I suggest you can change in the composer.json file-

"autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "your/directory/factories/",
            "Database\\Seeders\\": "database/seeders/",
            "Gleif\\Otrs\\": "otrs/"
        }
    },

Now run-

composer dumpautoload

Then on the model side, simply add-


protected static function newFactory()
    {
        return \Database\Factories\ModelFactory::new();
    }

Hope it will help you.