devsi/crudy

高级Laravel CRUD生成器

1.0.0 2023-08-30 21:49 UTC

This package is auto-updated.

Last update: 2024-09-30 01:54:42 UTC


README

Crudy (CRUD生成器)

  • 控制器
  • 视图 (index, create, edit, show)
  • 模型 (带关系)
  • 请求 (包含验证规则的文件)
  • 迁移

安装

1. 运行以下composer命令

composer require devsi/crudy

2. 如果您的项目中没有使用Laravel Collective Form包,请安装它

composer require laravelcollective/html

(注意:如果您不需要视图,则此步骤不是必需的。)

3. 发布配置文件和默认主题目录以供视图使用

php artisan vendor:publish --provider="devsi\crudy\CrudyServiceProvider"

用法

创建CRUD(或REST API)

让我们用一个现实生活中的例子来说明:构建一个博客

Post 有多个(hasMany)Comment 和属于多个(belongsToMany)Tag

Post 可以有 titlecontent 字段

让我们开始吧

如果您需要REST API而不是CRUD,只需这样做:php artisan make:rest-api nameOfYourCrud "column1:type, column2"

CRUD生成器命令

php artisan make:crud nameOfYourCrud "column1:type, column2"(理论)

php artisan make:crud post "title:string, content:text"(示例)

可用选项 [string,text,integer]

现在让我们添加我们的关系(CommentTag 模型)

我们在我们的 PostComment 之间添加一个 hasMany 关系,与 Tag 之间添加一个 belongsToMany 关系

创建了两个迁移(create_postscreate_post_tag)。

create_posts 是你的 Post 模型的表

create_post_tag 是一个枢纽表,用于处理 belongsToMany 关系

Post 模型也生成了,并添加了两个关系

image

迁移

两个迁移文件都创建在您的 database/migrations 目录中。如果需要,请编辑它们并运行

php artisan migrate

控制器

在您的 app/Http/Controllers 目录中创建了一个控制器文件。所有方法(index, create, store, show, edit, update, destroy)都已填充了您的字段。

路由

要为此新控制器创建路由,您可以这样做

Route::resource('posts', PostsController::class); (别忘了在您的 web.php 文件中导入您的 PostsController

截图

/posts/create : image

/posts : image

您可以对您的新帖子进行 editdelete 操作。还创建了一个 show 页面

请求

在您的 app/Http/Requests 目录中创建了一个请求文件。默认情况下,所有字段都是必需的,您可以按照需要编辑它。

视图

在您的 resources/views 目录中创建了一个视图目录。

您可以使用以下方式独立于CRUD生成器创建视图:php artisan make:views nameOfYourDirectoryViews "column1:type, column2"

完成您的博客

添加您的 Comment CRUD(带有一个 comment 列和一个 post_id 列)

php artisan make:crud comment "comment:text, post_id:integer"

添加您的 Tag CRUD(带有一个 column 名称)

php artisan make:crud 标签 "名称"

完成 🎉

删除一个 CRUD

您可以在任何时间删除由 make:crud 命令创建的所有文件(除迁移文件外)。无需手动删除文件

php artisan rm:crud 您的crud名称 --force

php artisan rm:crud post --force(在我们的例子中)

带有 --force 标志(可选)将不进行确认删除所有文件

image

许可证

此包根据 许可证 MIT 授权。