当我使用php artisan make:model CustomNamespace\TestModel
时,我得到一个基于默认存根的模型:
namespace App\Models\CustomNamespace;
use Illuminate\Database\Eloquent\Model;
class TestModel extends Model
{
//
}
但我想要创建的是一个基于我自己的存根的动态模型来获得这样的东西:
namespace App\Models\CustomNamespace;
use App\Models\MyParent;
/**
* Put a dynamic doc here
*/
class MyModel extends MyParent
{
/*put custom methods here*/
}
我已经检查了Laravel文档和其他tutos,但没有关于此,你能帮助一下吗?
答案 0 :(得分:7)
创建一个新命令,扩展Illuminate\Foundation\Console\ModelMakeCommand
类并覆盖getStub()
方法:
protected function getStub()
{
if ($this->option('pivot')) {
return __DIR__.'/stubs/pivot.model.stub';
}
return storage_path('/stubs/my-own-model.stub');
}
答案 1 :(得分:3)
从Laravel 7开始,您可以运行以下命令来应用stub customization:
php artisan stub:publish
此命令将在应用程序根目录的artisan make
目录中发布用于stubs
命令的所有存根文件,并使您能够根据项目的需要对其进行更改。 / p>
其中之一是stubs/model.stub
:
<?php
namespace {{ namespace }};
use Illuminate\Database\Eloquent\Model;
class {{ class }} extends Model
{
//
}
将其更改为:
<?php
namespace {{ namespace }};
use App\Models\MyParent;
/**
* Put your documentation here
*/
class {{ class }} extends MyParent
{
/* Put your custom methods here */
}
您可以在this blog post中阅读有关存根定制的更多信息。