laravel-admin 是一个可以快速帮你构建后台管理的工具
当前版本(1.6)需要安装PHP 7+和Laravel 5.5
开发必备
- Laravel-Admin文档: https://laravel-admin.org/docs/zh/
- Laravel文档: http://d.laravel-china.org/
安装/快速开始
- 安装
1 | composer require encore/laravel-admin "1.5.*" |
- 发布资源:
1 | php artisan vendor:publish --provider="Encore\Admin\AdminServiceProvider" |
- 完成安装:
1 | php artisan admin:install |
- 添加路由器
1 | php artisan admin:make UserController --model=App\\User |
- 添加路由配置
1 | $router->resource('users', UserController::class); |
快速上手
- 安装帮助工具
Helpers
- 安装帮助工具
- 使用里面的脚手架Scaffold, 创建表、控制器和模型
- 在
/database/seeds/
创建MenuSeeder.php
并如下操作
- 在
1 |
|
- 在在
/database/seeds/
创建DatabaseSeeder.php
中调用
- 在在
1 |
|
- 在命令行使用
php artisan db:seed
创建目录
- 在命令行使用
- 创建资源路由如下:
1 |
|
- 访问
http://admin.test/admin/test
即可
- 访问
帮助工具
Helpers
1 | composer require laravel-admin-ext/helpers |
Redis管理工具
1 | composer require laravel-admin-ext/redis-manager |
- 文件管理
1 | composer require laravel-admin-ext/media-manager -vvv |
- API tester
1 | composer require laravel-admin-ext/api-tester -vvv |
- 配置管理
1 | composer require laravel-admin-ext/config |
- 计划任务
1 | composer require laravel-admin-ext/scheduling -vvv |
模型表格 Grid
1 |
|
- 禁用相关操作
1 | 禁用创建按钮 |
内置方法:
- editable 直接编辑数据
1 | $grid->title()->editable(); |
- switch
1 | $grid->is_show('显示/隐藏')->switch(config('const.article_list.IS_SHOW')); |
- switchGroup
1 | $states = [ |
帮助方法:
- 字符串操作
1 | $grid->title()->limit(30)->ucfirst()->substr(1, 10); |
- 数组操作
1 | $grid->tags(); |
- 混合使用
1 | // 链式方法调用来显示多图 |
数据查询过滤
1 | $grid->filter(function($filter){ |
- 查询类型
1 | $filter->equal('column', $label); |
数据导出
- 安装
1 | composer require maatwebsite/excel:~2.1.0 |
- 新建自定义导出类,比如app/Admin/Extensions/ExcelExpoter.php:
1 |
|
- 在model-grid中使用这个导出类:
1 | use App\Admin\Extensions\ExcelExpoter; |
模型表单 Form
1 | use App\Models\Movie; |
自定义工具
1 | $form->tools(function (Form\Tools $tools) { |
其它方法
- 去掉提交按钮:
1 | $form->disableSubmit(); |
- 去掉重置按钮:
1 | $form->disableReset(); |
- 忽略掉不需要保存的字段:
1 | $form->ignore(['column1', 'column2', 'column3']); |
- 设置宽度:
1 | $form->setWidth(10, 2); |
- 设置表单提交的action:
1 | $form->setAction('admin/users'); |
权限控制
相关方法:
- 获取当前用户对象
1 | Admin::user(); |
- 获取当前用户id
1 | Admin::user()->id; |
- 获取用户角色
1 | Admin::user()->roles; |
- 获取用户的权限
1 | Admin::user()->permissions; |
- 用户是否某个角色
1 | Admin::user()->isRole('developer'); |
- 是否有某个权限
1 | Admin::user()->can('create-post'); |
- 是否没有某个权限
1 | Admin::user()->cannot('delete-post'); |
- 是否是超级管理员
1 | Admin::user()->isAdministrator(); |
- 是否是其中的角色
1 | Admin::user()->inRoles(['editor', 'developer']); |
权限中间件:
1 | // 允许administrator、editor两个角色访问group里面的路由 |