jspaceboots / laracrud
提供快速应用程序脚手架以及用于模型 CRUD 的 HTML 和 JSON API 接口。
Requires
- php: ~7.1
- doctrine/dbal: ~2.5
- illuminate/support: ~5.1
Requires (Dev)
- phpunit/phpunit: >=5.4.3
- squizlabs/php_codesniffer: ^2.3
This package is not auto-updated.
Last update: 2024-09-22 15:21:16 UTC
README
提供快速应用程序脚手架以及用于模型 CRUD 的 HTML 和 JSON API 接口。
项目目标
让您在 30 分钟或更短的时间内,通过手动或脚本方式构建数据模型。
我们让您快速生成所有必要的组件(模型、转换器、仓库等),并通过单个控制台命令将其连接在一起,立即通过“管理面板”Web GUI 和 RESTful JSON API 暴露您的数据,以实现创建、读取、更新和删除操作。
简单来说:您编写迁移,我们为您提供管理面板 + API
项目状态
ALPHA
非常早期的阶段,功能不完整,请自行承担风险使用。
安装
通过 Composer
$ composer require jspaceboots/laracrud
快速入门
首先需要发布配置和公共资产
php artisan vendor:publish
接下来修改应用程序的 config/crud.php 以满足项目需求。完成后
php artisan laracrud:make:model MySingularModel
这将生成 LaraCRUD 钩入您数据模型所需的文件,具体包括
- 模型
- 仓库
- 转换器
- 迁移
这些文件将生成在 config/crud.php 中指定的命名空间对应的目录中。例如,如果您的仓库命名空间设置为 "\App\Repositories\",则生成的仓库将写入 app/repositories。唯一的例外是迁移,它将被放置在 database/migrations。除了生成这些文件,生成的模型还将被添加到 config/crud.php 中的路由配置中。
从现在开始,您只需填写生成的迁移,然后运行
php artisan migrate
此时,您模型的所有非关系字段都应可通过 http://{{domain}}/crud/{{model}} 和 http://{{domain}}/api/crud/{{model}} 完全访问。
LaraCRUD 规范
表格规范
- LaraCRUD 要求每个实体的主键为 'id'。
- LaraCRUD 要求外键符合以下语法:{{foreign_model}}_id
- 示例:toaster_id,user_role_id
- LaraCRUD 要求多对多关系的连接表名称符合以下语法:{{model_table_1}}_{{model_table_2}}(顺序不重要)
- 示例:users_roles,toasters_heating_coils
- LaraCRUD 要求多对多关系的连接表至少包含两个列:{{foreign_model_1}}_id & {{foreign_model_2}}_id
- 示例:user_id & role_id,toaster_id & heating_coil_id
laracrud:make:model 命令将通过将您的驼峰式模型名称(MyModel)转换为下划线分隔的表示形式,并对最后一个单词进行复数化(my_models)来生成表名。
模型规范
- LaraCRUD 要求模型名称为单数和驼峰式
- 示例:User,Toaster,HeatingCoil
- LaraCRUD 要求您在模型上定义一组验证字符串数组(laracrud:make:model 将生成该部分)
- LaraCRUD 支持使用 UUID 作为模型主键,通过安装以下包实现:https://github.com/webpatser/laravel-uuid
- 在 config/crud.php 中启用 'useUuids' 后,laracrud:make:model 将生成自动填充 V4 UUID 作为其主键的模型
关系
- LaraCRUD 要求外键符合上述表格规范中的规范
- LaraCRUD 要求您在仓库中定义一些额外的元数据,以便遍历/持久化多对多关系和反向一对多
过滤器
移除 CRUD
如果您正在使用LaraCRUD启动项目,或者将来某个时候想移除LaraCRUD,只需运行
php artisan laracrud:eject
这将从已生成的模型、存储库和转换器中移除对LaraCRUD抽象类的依赖,从项目中移除已发布的配置和资源包,并最终在Laravel实例中注销LaraCRUD服务提供者。
变更日志
请参阅变更日志,了解更多最近的变化信息。
测试
$ composer test
贡献
安全
如果您发现任何与安全相关的问题,请通过电子邮件:author_email联系,而不是使用问题跟踪器。
鸣谢
许可协议
MIT许可协议(MIT)。请参阅许可文件获取更多信息。