使用Crud Generator Laravel 9和10节省您的开发时间
Crud Generator Laravel 是一个专为 Laravel 设计的包,它真正实现了 CRUD 功能。这个工具提供了:
- 预编写代码的 Controller
- 完整的 Views(包括 index, create, edit, show)
- 含有关系的 Model
- 包含验证规则的 Request 文件
- 自动创建的 Migration 文件
自版本 1.9.2 起,还支持完整的 REST API!
想要参与未来功能和改进的投票吗?请访问我们的讨论区:你的声音很重要!
如果你觉得这个项目很有价值,请考虑给它点个星标⭐。这将帮助我优先处理并保持项目更新。谢谢你的支持!
安装
- 在你的 Laravel 项目中运行以下composer命令:
composer require mrdebug/crudgen --dev
- 如果你不使用 Laravel Collective Form 包,安装它:
(注:如果不需要视图,则无需进行此步骤。)composer require laravelcollective/html
- 发布配置文件、stubs 和默认主题目录以供视图使用:
php artisan vendor:publish --provider="Mrdebug\Crudgen\CrudgenServiceProvider"
使用方法
创建 CRUD 或 REST API
以现实生活中的博客为例:
Post
与多条(hasMany)Comment
关联,并且属于多个(belongsToMany)Tag
。Post
可以有title
和content
字段。
我们来动手实践一下吧!(如果只需要 REST API,请参阅 此wiki页面)
CRUD 生成器命令:
php artisan make:crud nameOfYourCrud "column1:type, column2" (理论)
php artisan make:crud post "title:string, content:text" (针对我们的例子)
(查看 可用选项 和如何 生成使用 Livewire 数据表的 CRUD 的信息)
当你运行此命令时,控制器、视图和请求将根据你的字段(这里是标题和内容)生成。
接下来,添加我们的关系 (Comment
和 Tag
模型):
按照提示操作后,两个迁移文件(create_posts
和 create_post_tag
)会在 database/migrations 目录下创建。
Post
模型也会被生成,其中包含了这两个关系。
迁移
如有必要,编辑这两个迁移文件,然后执行:
php artisan migrate
控制器
控制器文件会在你的 app/Http/Controllers 目录下生成,所有方法(index, create, store, show, edit, update, destroy)都填充了你的字段。
路由
要为此新控制器创建路由,可以这样做:
Route::resource('posts', PostsController::class);
别忘了在 web.php
文件中导入你的 PostsController
。
请求
请求文件将在你的 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(带有 name
字段)
php artisan make:crud tag "name"
顺便提一句,对于特殊的评论情况,您可以使用 make:commentable
命令。 了解更多关于如何向任何模型添加可评论结构的信息:文档。
完成了🎉!
删除 CRUD
随时可以通过 rm:crud
命令删除所有(除了迁移文件之外)由 make:crud
命令创建的文件。不需要手动删除文件:
php artisan rm:crud nameOfYourCrud --force
php artisan rm:crud post --force (在我们的示例中)
--force
标志(可选),会无提示地删除所有文件。
许可证
该项目遵循 MIT 许可证。
其他项目
探索我在 GitHub 上的其他项目:
- LaraFileEncrypter:在 Laravel 中安全加密文件,无需繁琐的持久性密钥存储。
现在,尝试使用 Crud Generator Laravel 开启你的高效开发之旅吧!享受代码自动生成带来的便利,释放更多时间去专注于创新和优化你的应用。