wansh / thinkeasyadmin
基于thinkphp的后台工具包
1.1.0
2023-04-18 08:19 UTC
Requires
- php: >=7.0
- ext-gd: *
- topthink/framework: ^6.0.0
- topthink/think-captcha: ^3.0
- topthink/think-filesystem: ^2.0
- topthink/think-multi-app: ^v1.0.14
- topthink/think-view: ^2.0
README
简介
基于thinkphp6.0 开发的后台快速开发包
本项目是一个快速开发后台的工具库,完全基于面向对象思想; 一切都是可以通过重写继承达到自定义的;
本项目无任何业务功能上的封装,业务上的一切都需要您自己开发,只是会让您开发得更流畅;
gitee地址: https://gitee.com/wsh255/thinkeasyadmin
添加列表
#project\app\admin\controller\Category.php namespace app\admin\controller; use easyadmin\app\columns\lists\ListDateTime; use easyadmin\app\columns\lists\ListImage; use easyadmin\app\columns\lists\ListText; use easyadmin\app\libs\ListField; class Category extends \easyadmin\controller\Admin { protected $pageName = '分类'; protected function configListField(ListField $list) { $list ->addField('id', 'ID', ListText::class) ->addField('name', '分类名称', ListText::class) ->addField('icon', '图标', ListImage::class) ->addField('time', '创建时间', ListDateTime::class); } }
添加表单
#project\app\admin\controller\Category.php namespace app\admin\controller; use easyadmin\app\libs\PageForm; use easyadmin\app\columns\form\FormSelect; use easyadmin\app\columns\form\FormSwitch; use easyadmin\app\columns\form\FormText; use easyadmin\app\columns\form\FormTextarea; use easyadmin\app\columns\form\FormUpload; class Category extends \easyadmin\controller\Admin { /** * 配置表单 * @param PageForm $page */ protected function configFormField(PageForm $page) { $page ->addField('parent_id', '上级分类', FormSelect::class, [ 'table' => 'category', 'pk' => 'id',//使用查询,的主键 'property' => 'name',//查询显示字段 ]) ->addField('name', '分类名称', FormText::class) ->addField('icon', '分类图标', FormUpload::class) ->addField('intro', '分类简介', FormTextarea::class) ->addField('is_del', '是否删除', FormSwitch::class); if ($this->formType == 'edit') { //编辑页面特有的字段 $page->addField('edit_field', '名称', FormText::class); }else{ //添加页面特有的字段 $page->addField('add_field', '名称', FormText::class); } } }
表单验证
#project\app\admin\controller\Category.php namespace app\admin\controller; use easyadmin\app\libs\PageForm; use easyadmin\app\columns\form\FormText; class Category extends \easyadmin\controller\Admin { /** * 配置表单 * @param PageForm $page */ protected function configFormField(PageForm $page) { $page ->addField('name', '分类名称', FormText::class,[ 'required' => true, //是否必填 //定义验证规则, 用户输入的值长度大于0 个字符才会进入验证 // 1. 使用 Verify 类,然后配置规则 'verify' => (new Verify()) ->addRule('chinese', '名称请输入中文') ->addRule('maxlength', '名称不能超过5个字符', 5) ->addRule('minlength', '名称不能少于过2个字符', 2) ->addRule('reg', '请输入 重庆', '/^重庆$/') // 使用正则自定义验证规则 // 2. 声明匿名函数验证 // 验证正确 返回 true 错误返回错误提示 注: 正必须是 返回 true 'verify' => function ($val) { if ($val != '583161908') { return 'QQ 群是 583161908, 请输入: 583161908'; } return true; } ]); } }
路由权限控制配置
#project\app\admin\config\login.php // +---------------------------------------------------------------------- // | 登录注册相关配置 // +---------------------------------------------------------------------- return [ // 无权访问拦截地址 'no_access_url' => env('manage_login_url', '/admin/login/no_access'), // 路由访问限制 // 如果配置一个 空数组, 表示不验证权限,直接访问 // // anonymous 表示可用匿名访问, 不登录 // login 表示登录后可用访问 // other 表示需要指定的权限可以访问 (直接写自己定义的权限名称) // 'rules' => [ '^/admin/*' => 'login', '^/admin/login/.*' => 'anonymous', // 为了方便演示,首页不用登录,其他页面都需要登录 '^/admin/index/' => 'anonymous', // ... 其他路由规则,权限配置,在这里增加就好了 ] ];
业务中权限控制
if( User::getInstance()->hasRole('role_super') ){ // 超级管理员才显示菜单 // 超级管理员才显示字段 // 超级管理员才执行某段逻辑 // ... // ... // 根据自己逻辑干就完了 }