jspaceboots/laracrud

提供快速应用程序脚手架以及用于模型 CRUD 的 HTML 和 JSON API 接口。

dev-master / 1.0.x-dev 2018-01-17 03:34 UTC

This package is not auto-updated.

Last update: 2024-09-22 15:21:16 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

提供快速应用程序脚手架以及用于模型 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 要求外键符合上述表格规范中的规范
  • LaraCRUD 要求您在仓库中定义一些额外的元数据,以便遍历/持久化多对多关系和反向一对多

过滤器

移除 CRUD

如果您正在使用LaraCRUD启动项目,或者将来某个时候想移除LaraCRUD,只需运行

php artisan laracrud:eject

这将从已生成的模型、存储库和转换器中移除对LaraCRUD抽象类的依赖,从项目中移除已发布的配置和资源包,并最终在Laravel实例中注销LaraCRUD服务提供者。

变更日志

请参阅变更日志,了解更多最近的变化信息。

测试

$ composer test

贡献

请参阅贡献指南行为准则以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件:author_email联系,而不是使用问题跟踪器。

鸣谢

许可协议

MIT许可协议(MIT)。请参阅许可文件获取更多信息。