![](/img/trans.png)
[英]Lumen (Laravel) Eloquent php artisan make:model not defined
[英]How to use Jenssegers\Mongodb\Eloquent\Model instead of Illuminate\Database\Eloquent\Model in php artisan make:model command
我正在使用Laravel和MongoDB(jenssegers / laravel-mongodb)开发一个Webapp。
在使用php artisan make:model
创建新模型时,该命令在文件中使用Illuminate\\Database\\Eloquent\\Model
声明,每次我需要用Jenssegers\\Mongodb\\Eloquent\\Model
手动替换Illuminate\\Database\\Eloquent\\Model
Jenssegers\\Mongodb\\Eloquent\\Model
。
有没有办法使流程自动化?
软件包似乎没有提供Artisan命令来创建MongoDB模型存根,这似乎有点疏忽。 但是,如果需要,可以为Artisan自己创建这种生成器命令并不是很难。
模型制作命令位于https://github.com/laravel/framework/blob/5.7/src/Illuminate/Foundation/Console/ModelMakeCommand.php ,用于创建模型的存根文件位于https://github.com /laravel/framework/blob/5.7/src/Illuminate/Foundation/Console/stubs/model.stub 。 如果扩展命令类以将MongoDB版本替换存根文件,并将存根文件修改为MongoDB模型,则应该能够创建用于生成MongoDB模型的命令。 甚至值得分叉该软件包以添加此内容,然后提交拉取请求以将其添加到该软件包中。 我会参考Laravel文档中涉及Artisan的部分以获取更多详细信息,因为该部分详细描述了添加自己的Artisan命令的过程。
另一种方法是编写自己的类生成器,然后覆盖命令make:model
在文件routes/console.php
添加以下内容以覆盖命令
use Path\To\Class\MyCustomClassGenerator;
Artisan::command('make:model', function(){
new MyCustomClassGenerator();
$this->comment('new MongoDB Model generated');
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.