
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