Laravel Gii 參考sunshinev/laravel-gii,使用laravel7 + vue + elemnt-ui 架構,api使用resftul api,前後端分離,專案程式碼使用php artisan vendor:publish發布後,不依賴擴充本身,全部部署到專案目錄下,可依需求彈性修改
[TOC]
stub
模板。因為是解析MySQL的表結構,且根據欄位產生模板,所以目前產生的Model類別時只支援MySQL, MySQL表結構請確保id
, created_at
, updated_at
三個欄位必須存在。
###擴充套件請先安裝laravel7(其他版本未測試)
Via Composer
$ composer require skyyouare/laravel-gii --dev
需要先按
1、composer require laravel/ui --dev
2、php artisan ui vue
3、npm install
4、npm install element-ui vue-router qs --save-dev
5、php artisan vendor:publish --tag gii.config --tag gii.views --tag gii.images --tag gii.js --tag gii.blade --tag gii.sass --tag gii.controller --tag gii.request --tag gii.route --tag gii.exception --tag gii.provider --force
6、运行 npm run watch-poll 编译
在發布完成後,已經進行了路由的註冊,可以透過下面的路由訪問Gii頁面,請確認配置好資料庫(否則會報錯),網站域名(ip)等
http:[domain]/gii/model
表單說明
產生的文件列表,藍色代表全新文件,紅色代表已有文件但是存在不同,白色代表已有文件。
例如指定產生的Model命名空間為AppModelsAdminAlarmLog
,那麼產生的目錄結構為:
.app
├── Http
│ └── Requests
│ └── Admin
│ └── AlarmLogRequests.php
├── Models
│ └── Admin
│ ├── AlarmLogModel.php
│ └── AlarmLog.php
├── Observers
│ └── Models
│ └── Admin
└── └── AlarmLogObserver.php
透過上面的結構,我們可以發現命名空間與目錄之間的關係。
CRUD的創建,需要依賴先前創建的模型。
此操作會同時產生:
表單說明
若指定命名空間的類別為AppHttpControllersAdmin
,控制器為AlarmLogController
,以及關聯的Model為AppModelsAdminAlarmLog
,那麼產生的目錄結構為:
app
├── Http
│ └── Controllers
│ │ └── Admin
│ │ └── AlarmLogController.php
│ └── Requests
│ └── Admin
│ └── AlarmLogRequests.php
├── Models
│ └── Admin
│ ├── AlarmLogModel.php
│ └── AlarmLog.php
└── Observers
└── Models
└── Admin
└── AlarmLogObserver.php
以及生成的視圖文件
.resources
└── pages
└── admin
└── alarmlog
├── list.vue
├── edit.vue
├── create.vue
└── detail.vue
注意:路由是追加的,請勿多次產生CRUD的路由會自動加入到路由檔案中,根據Controller的命名空間AppHttpControllersAdminAlarmLogController
會產生如下的路由,所以請直接存取路由
//--------- append route 2020-08-27 09:58:16----------
{
name: 'alarmlog',
path:'/alarmlog/list',
component: resolve =>void(require(['./pages/alarmlog/list.vue'], resolve))
},
{
name: 'alarmlog',
path:'/alarmlog/create',
component: resolve =>void(require(['./pages/alarmlog/create.vue'], resolve))
},
{
name: 'alarmlog',
path:'/alarmlog/edit',
component: resolve =>void(require(['./pages/alarmlog/edit.vue'], resolve))
},
{
name: 'alarmlog',
path:'/alarmlog/detail',
component: resolve =>void(require(['./pages/alarmlog/detail.vue'], resolve))
},
包含全面的增刪查改功能
MIT. Please see the license file for more information.