venturo/laravel-crud-generator

用于生成CRUD操作的包

v1.1.0 2024-07-09 07:27 UTC

This package is auto-updated.

Last update: 2024-09-16 07:43:37 UTC


README

==========================

本包用于在Laravel应用程序中生成CRUD(创建、读取、更新、删除)操作。

安装

要安装此包,请在您的终端中运行以下命令:

composer require venturo/laravel-crud-generator:dev-main

发布

安装后,使用以下命令发布包的资产:

php artisan vendor:publish --provider="Venturo\CrudGenerator\CrudGeneratorServiceProvider"

使用方法

要为模型生成CRUD操作,请运行以下命令

php artisan make:crud {name} {--fields=} {--filters=} {--create-rule=} {--update-rule=} {--relations=}

示例

php artisan make:crud Book --fields="m_category_id:string;nullable,penerbit:string" --filters="judul:whereIn" --create-rule="judul=required|max:100;penerbit=in:test,test2" --update-rule="penerbit=in:test,test2"

选项

name

用于创建CRUD操作的模型名称。

--fields

用于迁移的列列表,由逗号分隔。每列必须采用格式名称:类型,其中名称是列名,类型是列数据类型(例如:stringintegerdatetime等)。您还可以为每列指定附加属性,如nullableuniquedefault:value

示例:--fields="name:string,email:string|unique,password:string"

--filters

用于模型的过滤器列表,由逗号分隔。每个过滤器必须采用格式名称:类型,其中名称是过滤器名,类型是过滤器类型(例如:likewhereNotwhereIn等)。

示例:--filters="name:like,email:whereNot"

--create-rule

用于创建模型新实例的验证规则列表,由逗号分隔。每个规则必须采用格式字段:规则,其中字段是字段名,规则是验证规则(例如:requiredemailmin:8等)。

示例:--create-rule="name|required,email|required|email"

--update-rule

用于更新现有模型实例的验证规则列表,由逗号分隔。每个规则必须采用格式字段:规则,其中字段是字段名,规则是验证规则(例如:requiredemailmin:8等)。

示例:--update-rule="name|required,email|required|email"

--relations

用于模型的关联列表,由逗号分隔。每个关联必须采用格式关系类型:类,其中关系类型是关系类型(例如:hasOnehasManybelongsTo等)和是相关模型类。

示例:--relations="hasOne:User,hasMany:Posts"

生成的文件

此包将生成以下文件

  • app/Models/{模型名称}.php:模型类。
  • app/Http/Controllers/Api/{模型名称}Controller.php:API控制器类。
  • app/Http/Requests/{模型名称}Request.php:用于创建和更新模型实例的请求类。
  • app/Http/Resources/{模型名称}Resource.php:用于将模型转换为JSON响应的类。
  • app/Http/Resources/{模型名称}Collection.php:用于将模型集合转换为JSON响应的类。
  • database/migrations/{时间戳}_create_{表名}_table.php:创建表的迁移文件。
  • app/Helpers/{模型名称}Helper.php:模型辅助类。

许可证

本包采用MIT许可证。有关详细信息,请参阅LICENSE文件。

贡献

欢迎贡献!请将pull request提交到dev-main分支。

支持

如果您有任何问题或问题,请在本GitHub问题跟踪器中打开问题。