几秒钟内创建 Laravel Crud

dev-main 2024-07-11 12:24 UTC

This package is auto-updated.

Last update: 2024-09-11 12:36:09 UTC


README

Crud Generator Laravel 是一个可以在您的 Laravel 中集成的包,用于创建真正的 CRUD。它包括

  • 控制器 已编写所有代码
  • 视图(index,create,edit,show)
  • 模型 带有关系
  • 请求 文件带有验证规则
  • 迁移 文件

安装

1. 运行以下 composer 命令

composer require ahaduzzamanapon/makecrud:dev-main

2. 如果您在项目中不使用 Laravel Collective Form 包,请安装它

composer require laravelcollective/html

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

3. 发布配置文件、占位符和视图的默认主题目录

php artisan vendor:publish --provider="ahaduzzamanapon\makecrud\MakecrudServiceProvider"

使用方法

创建 CRUD(或 REST API)

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

Post 有许多(hasMany)Comment,并且与许多(belongsToMany)Tag 相关

Post 可以有 titlecontent 字段

让我们这样做吧!

CRUD 生成器命令

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

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

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

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

创建了两个迁移(create_posts AND create_post_tag)。

create_posts 是您的 Post 模型的表

create_post_tag 是一个枢纽表来处理 belongsToMany 关系

还生成了包含两个关系的 Post 模型

迁移

两个迁移文件都创建在您的 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 :

/posts :

您可以 编辑删除 您的新帖子。还创建了一个 show 页面

请求

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

视图

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

您可以使用 php artisan make:views nameOfYourDirectoryViews "column1:type, column2" 独立创建视图

完成您的博客

添加您的 Comment CRUD(具有 commentpost_id 列)

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

添加您的 Tag CRUD(具有 name 列)

php artisan make:crud tag "name"

请注意:Comment 是一个特殊情况,您可以使用 make:commentable 命令

完成了!

删除 CRUD

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

php artisan rm:crud nameOfYourCrud --force

php artisan rm:crud post --force(以我们的示例为例)

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

许可证

其他项目

在GitHub上探索我的其他项目

  • LaraFileEncrypter:使用AES-256加密,无需存储持久密钥,在Laravel中安全地存储您的文件。

makecrud