filippo-toso / models-generator
一个Laravel Artisan命令,用于从数据库表中自动生成模型
Requires
- php: ^7.0 || ^8.0 || ^9.0
- doctrine/dbal: ^2.8 || ^3.0
- illuminate/support: >=8.0
- laravel/helpers: ^1.3
- dev-master
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.3.0
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.0
- v2.0.11
- v2.0.10
- v2.0.9
- v2.0.8
- v2.0.7
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- 1.x-dev
- v1.6.1
- v1.6.0
- v1.5.1
- v1.5.0
- v1.4.1
- v1.4.0
- v1.3.0
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.1
- v1.1.0
- v1.0.2
- v1.0.1
- v1.0.0
- v0.1.7
- v0.1.6
- v0.1.5
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- v0.0.9
- v0.0.8
- v0.0.7
- v0.0.6
- v0.0.5
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
This package is auto-updated.
Last update: 2024-09-26 06:27:04 UTC
README
一个用于从数据库表中自动生成模型的Laravel Artisan命令。
要求
- PHP 5.6+
- Laravel 5.4+
- Doctrine DBAL +2.8
安装
使用Composer安装
composer require filippo-toso/models-generator
它是如何工作的?
这个生成器非常简单。它从数据库构建模型,并将它们保存在App\Models命名空间中。然后,它将这些模型与App命名空间中的用户对应模型扩展。如果您遵循Laravel的表和列命名指南,它将非常出色 ;)
在执行了第一次生成后,您可以像通常一样进入App命名空间中的模型进行自定义。如果您更改了数据库(在开发过程中经常发生),您可以再次运行生成器(启用覆盖选项),无需额外努力即可获取更新后的模型集。
这种解决方案使您能够享受自动代码生成的便利,同时还可以添加/更改模型的行为(例如,更改属性可见性、添加关系等)。
默认情况下,生成器不会创建Laravel表(如工作、缓存等)的模型。您可以通过发布包资源并编辑config/models-generator.php文件来修改此行为。
配置
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag=config --provider="FilippoToso\ModelsGenerator\ServiceProvider"
config/model-generator.php文件允许您
- 定义哪些表排除在生成之外(例如,缓存、工作、迁移等)
- 定义一对一关系
- 定义多态关系
只需打开文件并阅读注释 :)
请注意,一对一和多对多关系是使用您在数据库中定义的外键构建的。
选项
从命令行预定义的使用方式是
php artisan generate:models
此命令执行以下步骤
- 创建一个App\Models命名空间。
- 用数据库中的模型填充它。
- 在App命名空间中创建用户可编辑的模型。
- 为用户模型创建App\Models\Traits\UserRelationships特质。
如果App\Models命名空间中存在现有模型,则默认不会覆盖它们(请参阅下一个示例)。如果App命名空间中存在现有模型,则永远不会覆盖。
您可以使用以下参数修改默认行为
php artisan generate:models --overwrite
如果设置了覆盖选项,则生成器将始终覆盖App.Models命名空间中的模型。如果您遵循不要更改这些模型而编辑App命名空间中的模型的规则,则可以安全地这样做。
php artisan generate:models --connection=sqlite
您可以根据需要指定不同的连接。
工作流程
为了从此包中获得最大利益,您应遵循以下工作流程
- 设计数据库
- 编写迁移(包括所有必需的外键)
- 迁移数据库
- 配置生成器
- 运行生成器
- 在App命名空间中自定义模型
然后,每次您创建和运行新的迁移时,都应再次执行生成器,以保持模型与数据库同步。
您还必须遵循Laravel关于表和列命名的指南,否则生成器将无法识别现有关系。