Laravel-Gii 可视化代码生成工具 CRUD +GUI
适用于快速B端后台开发,根据MySQL的表结构生成对应的Model、Observer、Controller、View、Route等相关项目文件
[TOC]
注意
因为是解析MySQL的表结构,并且根据字段生成模板,所以目前生成的Model类时只支持MySQL,但是CRUD可以使用支持mongo和MySQL两种connection。
MySQL表结构请保证id
,created_at
,updated_at
三个字段必须存在。
安装
扩展包
Composer require sunshinev/laravel-gii -vvv
发布
该操作会发布assets静态文件,到public目录下
php artisan vendor:publish --tag laravel-gii
访问
http:[domain]/gii/model
操作说明
生成Model模型
表单说明
- 表名称(支持下拉选择)
- Model类名(想要创建模型类,包含命名空间)
- 模型继承的父类(如果是Mongo可以继承
JenssegersMongodbEloquentModel
,MySQL用IlluminateDatabaseEloquentModel
)
生成的文件列表,蓝色代表全新文件,红色代表已有文件但是存在不同,白色代表已有文件。
生成CRUD
CRUD的创建,需要依赖之前创建的模型。
该操作会同时生成:
- route
- controller
- views
表单说明
- 控制器名称(包含命名空间)
- 之前创建的模型类
特性
MySQL列表加载
从配置的MySQL数据库中拉取列表
文件对比
工具会将新生成的文件与已存在的文件进行差异对比,方便查看修改部分,控制修改范围。
路由追加
新生成的页面,会自动追加到路由配置文件
CRUD后台效果
列表页
包含全面的增删查改功能
- 列表
- 分页
- 检索
- 删除+批量删除
- 预览
- 详情
- 编辑
删除+批量删除
取消按钮放大,防止误删
行预览
编辑页面
建议
如果想用Mongo怎么办?
如果生成完Model之后,默认的会使用env中配置的connection,如果需要调整,需要修改生成的Model文件。
// if connection is empty ,use default connectionprotected $connection = '';
后台页面如何支持其他组件?
后台页面统一使用iview作为前端框架,目前支持iview4的所有组件,可直接在生成的blade模板文件中添加组件即可。
iviewui文档
如何升级页面的iview组件?
生成的CRUD后台使用的是基于laravel-fe-render和base-fe 两个项目,其中base-fe
是Vue+iview的打包,如下:
import Vue from 'vue'
import ViewUI from 'view-design';
import 'view-design/dist/styles/iview.css';
Vue.use(ViewUI);
可以Fork base-fe
项目,然后进行iview升级,将生成的dist目录放到laravel-fe-render
项目的assets
目录,然后重新发布即可.
关于Gii的iview.min.js
请参考 https://github.com/sunshinev/ViewUI 项目,Fork后做了细微调整
相关资料
https://github.com/sunshinev/laravel-fe-render
https://github.com/sunshinev/base-fe
https://github.com/sunshinev/laravel-gii