When I use php artisan make:model CustomNamespace\TestModel
, I get a model based on default stub as this :
namespace App\Models\CustomNamespace;
use Illuminate\Database\Eloquent\Model;
class TestModel extends Model
{
//
}
But what I want to create is a dynamic Model based on my own stub to get something like this:
namespace App\Models\CustomNamespace;
use App\Models\MyParent;
/**
* Put a dynamic doc here
*/
class MyModel extends MyParent
{
/*put custom methods here*/
}
I've checked Laravel docs and other tutos but nothing on this, could you help guys ?
Create a new command, extend the
Illuminate\Foundation\Console\ModelMakeCommand
class and override thegetStub()
method:Since Laravel 7, you can apply stub customization by running:
This command will publish all the stub files that are used for the
artisan make
commands in thestubs
directory of the application root, and give you the ability to change them according to your project's needs.One of them is
stubs/model.stub
:Change it to:
You can read a bit more about stub customization in this blog post.