laravel create model from custom stub when using php artisan

后端 未结 2 1170
醉梦人生
醉梦人生 2021-02-20 06:04

When I use php artisan make:model CustomNamespace\\TestModel, I get a model based on default stub as this :

namespace App\\Models\\CustomNamespace;
         


        
相关标签:
2条回答
  • 2021-02-20 06:25

    Since Laravel 7, you can apply stub customization by running:

    php artisan stub:publish
    

    This command will publish all the stub files that are used for the artisan make commands in the stubs 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:

    <?php
    
    namespace {{ namespace }};
    
    use Illuminate\Database\Eloquent\Model;
    
    class {{ class }} extends Model
    {
        //
    }
    

    Change it to:

    <?php
    
    namespace {{ namespace }};
    
    use App\Models\MyParent;
    
    /**
     * Put your documentation here
     */
    class {{ class }} extends MyParent
    {
        /* Put your custom methods here */
    }
    

    You can read a bit more about stub customization in this blog post.

    0 讨论(0)
  • 2021-02-20 06:38

    Create a new command, extend the Illuminate\Foundation\Console\ModelMakeCommand class and override the getStub() method:

    protected function getStub()
    {
        if ($this->option('pivot')) {
            return __DIR__.'/stubs/pivot.model.stub';
        }
    
        return storage_path('/stubs/my-own-model.stub');
    }
    
    0 讨论(0)
提交回复
热议问题