Skip to content

Instantly share code, notes, and snippets.

@blood72
Last active October 10, 2020 11:28
Show Gist options
  • Save blood72/3d216f2eb90dd35a821b890bb36149ea to your computer and use it in GitHub Desktop.
Save blood72/3d216f2eb90dd35a821b890bb36149ea to your computer and use it in GitHub Desktop.
Guess factory class name & path based on class_basename() in Laravel 8
<?php
namespace App\Concerns;
use Illuminate\Database\Eloquent\Factories\Factory;
use Illuminate\Database\Eloquent\Factories\HasFactory as BaseTrait;
trait HasFactory
{
use BaseTrait;
/**
* Create a new factory instance for the model.
*
* @return \Illuminate\Database\Eloquent\Factories\Factory
*/
protected static function newFactory()
{
try {
return Factory::factoryForModel(get_called_class());
} catch (\Throwable $e) {
Factory::guessFactoryNamesUsing(function (string $modelName) {
$modelName = class_basename($modelName);
return 'Database\\Factories\\'.$modelName.'Factory';
});
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment