最终效果LaravelGii为中小型项目快速创建管理后台提供了一种新的可能。在使用过程中,你会发现它非常轻量,自由度高,内部实现逻辑简单。特别是对于熟悉iView的开发者来说,在Gii生成的页面上,可以根据自己的需要自定义页面。通过将默认的Input组件修改为其他功能丰富的iView组件,他们可以构建更复杂的管理页面。你会发现它并没有提供用户登录和权限功能,只是提供了更轻量级的页面创建,这会让很多开发者感觉更舒服,可以自由灵活地调整和定制页面来实现不同的能力。感谢您的支持,欢迎在Issue中提出您的意见并开始体验。[TOC]原理是通过分析MySQL数据表结构,提取字段和类型,填充到存根模板中。生成Model、Observer、Controller、View、Route等对应工程文件根据MySQL表结构生成Model根据Model生成Controller官网https://sunshinev.github.io/l...注意,因为解析MySQL的表结构并根据字段生成模板,目前生成的Model类只支持MySQL,生成的增删改查管理后台可以同时使用mongo和MySQL连接。请确保mysql表结构中id、created_at、updated_at这三个字段必须存在。安装扩展包Composerrequiresunshinev/laravel-gii-vvvPublish这个操作会发布assets静态文件,到public目录下phpartisanvendor:publish--taglaravel-gii访问发布完成后路由注册已经执行完毕,可以通过以下路径访问Gii页面http:[domain]/gii/model操作说明generateModel模型表单描述表名(支持下拉选择)模型类名(要创建的模型类,包括namespace)模型继承的父类(如果Mongo可以继承Jenssegers\Mongodb\Eloquent\Model生成的文件列表,MySQL使用Illuminate\Database\Eloquent\Model),蓝色代表新建文件,红色代表已有文件但是是不同,白色代表现有文件。例如生成的Model命名空间指定为App\Models\Admin\Users,那么生成的目录结构为:.app├──Models│└──Admin│├──UsersModel.php│└──Users。php└──Observers└──Models└──Admin└──UsersObserver.php通过上面的结构,我们可以找到命名空间和目录的关系。CRUDCRUD的创建需要依赖之前创建的模型。该操作会同时生成:routecontrollerviews表单描述控制器名称(含命名空间)之前创建的模型类如果指定的Controller类为App\Http\Controllers\Admin\UsersController,关联的Model为App\Models\Admin\Users,则生成的目录结构为:app├──Http│└──Controllers│└──Admin│├├──RenderController.php│├──UsersController.php├──Models│└──Admin│├──UsersModel.php│└──Users.php└──Observers└──Models└──Admin└──UsersObserver.php和生成的viewfiles.resources└──views└──admin├──layouts│└──default.blade.php└──users├──create.blade.php├──detail.blade.php├──edit.blade.php└──list.blade.php通过上面的结构我们可以发现命名空间和目录之间的关系。你会发现admin其实是想到了模块,通过模块化的概念来划分功能。如何访问CRUD?CRUD路由会自动添加到路由文件中。根据Controller命名空间App\Http\Controllers\Admin\UsersController会生成如下路由,所以请直接访问该路由Route::get('/admin/layout','Admin\RenderController@index');Route::get('/admin/layout/render','Admin\RenderController@render');特性MySQLlistloadingPulllistfromconfiguredMySQLdatabasefilecomparisontool新生成的文件和现有文件之间的差异将被比较,这样方便查看修改部分,控制修改范围。RoutingAppend新生成的页面会自动添加到路由配置文件中。增删改查后台效果列表页包含完善的增删改查功能。列表页搜索删除+批量删除预览详情编辑删除+批量删除取消按钮放大防止误删行预览编辑页面提示要用mongo怎么办?Model生成后,默认使用env中配置的连接。如果需要调整,需要修改生成的模型文件。//如果连接为空,则使用默认连接protected$connection='';后台页面如何支持其他组件?后台页面统一使用iview作为前端框架。目前支持iview4的所有组件,可以直接在生成的blade模板文件中添加组件。iviewui文档如何升级页面的iview组件?生成的CRUD后台使用了基于laravel-fe-render和base-fe的两个项目,其中base-fe是Vue+iview的封装,如下:importVuefrom'vue'importViewUIfrom'view-design';import'view-design/dist/styles/iview.css';Vue.use(ViewUI);可以Forkbase-fe项目,然后升级iview,将生成的dist目录放到laravel-fe-render项目的assets目录下。然后重新发布它。Gii的iview.min.js请参考https://github.com/sunshinev/...项目,并在Fork相关信息后做了小幅调整https://github.com/sunshinev/laravel-fe-renderhttps//github.com/sunshinev/base-fehttps://github.com/sunshinev/laravel-gii
