ahaduzzamanapon / makecrud
几秒钟内创建 Laravel Crud
Requires
- php: >=8.0.0
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
可以有 title
和 content
字段
让我们这样做吧!
CRUD 生成器命令
php artisan make:crud nameOfYourCrud "column1:type, column2"
(理论)
php artisan make:crud post "title:string, content:text"
(示例)
现在让我们添加我们的关系(Comment
和 Tag
模型)
我们在 Post
和 Comment
之间添加了一个 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(具有 comment
和 post_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中安全地存储您的文件。