bgaze/laravel-crud

Laravel 5.5+ 的 CRUD 生成器

1.0.1 2019-04-16 13:47 UTC

This package is auto-updated.

Last update: 2024-09-08 23:20:14 UTC


README

目录

“约定”部分解释了非常重要的概念。
请在使用此包之前仔细阅读。

文档

概述

此包允许您轻松地为 Laravel 5.5+ 应用程序生成 CRUD。
请查看 Vimeo 上的这个简短视频 来了解其实际效果

使用 SignInput 语法,它提供了一种简洁方便的方式来定义模型字段。

它旨在轻松创建自定义 CRUD,即 主题

提供了两个简单的主题

  • crud:classic 生成一个完整的“经典”CRUD。
    它为您创建:迁移、模型、工厂、播种器、请求、资源、控制器、Blade 视图和路由。
  • crud:api 生成一个完整的 REST API CRUD。
    它为您创建:迁移、模型、工厂、播种器、请求、资源、控制器和路由。

安装

简单地将包作为开发依赖项导入您的 Laravel 应用程序

composer require --dev bgaze/laravel-crud

您可以将包配置发布到 /config/crud.php

php artisan vendor:publish --provider=Bgaze\Crud\ServiceProvider

并将经典主题视图发布到 /resources/views/vendor/crud-classic

php artisan vendor:publish --tag=crud-classic-views

为什么使用这个包?

Laravel 是我最喜欢的 PHP 框架。
但是,在日常工作中,我意识到每次创建模型时,我都在浪费时间做重复性任务,而不是真正专注于应用程序本身。

  1. 生成类:模型、迁移、控制器、请求、工厂、播种器、...
  2. 在迁移中定义表字段。
  3. 在请求类中创建规则。
  4. 在工厂中创建模型模拟。
  5. 在控制器中定义 CRUD 操作。
  6. 注册控制器路由。
  7. 创建 CRUD 视图和模型表单。

我相信这个过程可以通过自动化来大大简化,以产生一个通用的 CRUD,我们只需要进行定制,从而保持对应用程序逻辑的关注。

关键在于从模型表字段中定义,遵循框架约定,可以推导出很多东西。
例如,请求规则或表单字段:非空字段是必需的,枚举字段通常是一个选择框。

但即使 CRUD 生成逻辑几乎相同,生成的文件也会因所使用的工具而大相径庭。
例如,使用经典 HTML 或 Vue.js,CRUD 文件将非常不同。

因此,此包的目标是提供

  • 一种方便的方式来定义 CRUD 生成所需的信息。
  • 一个可扩展的基类,可以轻松创建自定义 CRUD 生成器(称为 主题)。
  • 两个简单的主题,可以作为自定义 CRUD 的基础使用
    • REST API CRUD。
    • 使用 Blade 模板的标准 CRUD。

约定

CRUD 生成器需要操作模型名称以生成所需资源。
作为一个约定,我们指定

  • FullName: 包含命名空间但不包含 App 部分的模型名称。
  • Plural: FullName 的最后一个部分被复数化。
  • Plurals: FullName 的每个部分都被复数化。

示例

Models:
    \App\MyGrandParent  
    \App\MyGrandParent\MyParent  
    \App\MyGrandParent\MyParent\MyChild

FullName:
    MyGrandParent  
    MyGrandParent\MyParent  
    MyGrandParent\MyParent\MyChild

Plural:
    MyGrandParents  
    MyGrandParent\MyParents  
    MyGrandParent\MyParent\MyChildren

Plurals:
    MyGrandParents  
    MyGrandParents\MyParents  
    MyGrandParents\MyParents\MyChildren