框架文档地址:https://learnku.com/docs/dcat-admin/2.x/basic-use/8123#352645

1、创建 TestRepository 类继承 Dcat\Admin\Repositories\QueryBuilderRepository

<?phpnamespace App\Admin\Repositories;use Dcat\Admin\Repositories\QueryBuilderRepository;class TestRepository extends QueryBuilderRepository
{// 设置你的主键名称protected $keyName = 'id';// 设置创建时间字段protected $createdAtColumn = 'create_time';// 设置更新时间字段protected $updatedAtColumn = 'update_time';// 返回表名public function getTable(){return 'table_name';}// 返回你的主键名称public function getKeyName(){return $this->keyName;}// 通过这个方法可以指定查询的字段,默认"*"public function getGridColumns(){return ['*'];}// 通过这个方法可以指定表单页查询的字段,默认"*"public function getFormColumns(){return ['*'];}// 通过这个方法可以指定数据详情页查询的字段,默认"*"public function getDetailColumns(){return ['*'];}// 返回数据表格 Grid 的数据,用于数据表格展示// 例子中进行分页,不分页请参考官方文档public function get(Model $model){// 获取当前页数$currentPage = $model->getCurrentPage();// 获取每页显示行数$perPage = $model->getPerPage();$start = ($currentPage - 1) * $perPage;// 获取排序参数, 格式例如['id', 'asc', null]$sort = $model->getSort();// 获取筛选条件$id = $model->filter()->input('id'),// 获取规格选择器条件$gender = $model->filter()->input('_selector.gender'),$param = ['sort'     => $sort,'search'   => ['id' => $id],'selector' => ['gender' => $gender]];$data = $this->getList($param);return $model->makePaginator($data['total'] ?? 0, // 传入总记录数$data['subjects'] ?? [] // 传入数据二维数组);}// 获取列表数据public function getList(array $param){$prePage = $param['per_page'] ?? 20;$start = $param['start'] ?? 0;$note_monitor = DB::table('table_name')->...// 计算列表总数$count = $note_monitor->count();// 获取列表$list = $note_monitor->limit($prePage)->offset($start)->get()->toArray();return ['total' => $count,'subjects' => $list];}}

2、使用TestRepository 类展示列表

<?phpnamespace App\Admin\Controllers;use App\Admin\Repositories\TestRepository;
use Dcat\Admin\Grid;
use \Dcat\Admin\Http\Controllers\AdminController;class TestController extends AdminController
{protected function grid(){return Grid::make(new TestRepository(), function (Grid $grid) {// 第一列显示id字段,并将这一列设置为可排序列$grid->column('id', 'ID')->sortable();...// 筛选$grid->filter(function ($filter) {// 设置id字段的范围查询$filter->equal('id', 'ID');...});// 规格选择器$grid->selector(function (Grid\Tools\Selector $selector) {//性别$selector->select('gender', '性别', [0 => '男', 1 => '女', '' => '未标明']);});});}
}
使用数据仓库存在的问题

1、框架自带的导出功能无法正常使用,例如在导出当前页时,会报错 ErrorException Division by zero

原因在于 vendor\laravel\framework\src\Illuminate\Pagination\LengthAwarePaginator.php 构造方法中无法自动获取分页相关数据,此时需要自定义导出功能,可见Dcat admin 使用maatwebsite/excel3.1自定义导出

2、选择某行无法正常计算选中行总量,在自定义Action、Tool时getKey()方法无法正常使用。

Dcat admin 使用数据仓库实现复杂表格数据相关推荐

  1. laravel-admin / Dcat admin 上传Excel并导入数据到数据库

    准备工作 安装maatwebsite/excel composer require maatwebsite/excel laravel-admin 效果图 创建按钮 $grid->tools(f ...

  2. Dcat Admin 批量操作/批量审批功能(弹窗)实现

    功能:选择行,点击批量审批按钮,触发弹窗,输入审批意见,选择通过或退回,提交.如下图展示: 主要分三部分:1.添加批量审批按钮 2.弹窗及提交后的数据处理文件  3.动作文件 一.弹窗及提交后的数据处 ...

  3. html点击按钮获取列表数据传递到页面,随笔:ajax传递数组,layui父子页面传值,下来菜单赋值,父页面数据获取,表格数据替换为字符串...

    一.Ajax向后台传递数组问题:(声明前台我使用的layui框架) 例:我们要多前台一个数据表格进行批量删除操作,我们通过复选框选中数据id,将id存入一个数组中,然后利用ajax传递给后台,完成批量 ...

  4. Java实现根据Word模板填充表格数据(poi方式),以及doc和docx转PDF,最全最详细版本,解决外部引用jar在linux上报ClassNotFound的问题。

    Java实现根据Word模板填充表格数据(poi方式),以及doc和docx转PDF,最全最详细版本,解决外部引用jar在linux上报ClassNotFound的问题. 适用场景: 1.固定格式的W ...

  5. layui表格数据重载根据不同的条件点击事件怎么实现?

    就是根据红色标记的条件来重载表格数据,还没有点击上面红色标记的条件默认是本周,这里可以加载出来,但点击其他的时候就没有数据出现了.需要重新加载框架才有数据显示.请问大神这问题如何解决? 默认的时候是显 ...

  6. jqgrid如何渲染表格数据_JqGrid 使用方法详解

    JQGrid是一个在jquery基础上做的一个表格控件,以ajax的方式和服务器端通信. JQGrid Demo 是一个在线的演示项目.在这里,可以知道jqgrid可以做什么事情. 下面是转自其他人b ...

  7. layui添加复选框_layui表格数据复选框回显设置方法

    layui2.3版本,本身并不带有复选框回显功能,那么需要从源头解决此事,F12代码调试,找到与复选框关联的地方发现: 我们只需要在渲染数据回调时找到每个复选框根据数据的不同来设置回显. layui这 ...

  8. Laravel + Dcat admin 开发一个健壮的 erp 项目

    原文地址 : Laravel + Dcat admin 开发一个健壮的 erp 项目 背景 4个月前我写过一篇文章 dcat-admin 开源框架在 erp 项目中的应用 在几个月前我只是用其完成一些 ...

  9. 赠书 | 新手指南——如何通过HuggingFace Transformer整合表格数据

    作者 | Ken Gu 翻译| 火火酱~,责编 | 晋兆雨 出品 | AI科技大本营 头图 | 付费下载于视觉中国 *文末有赠书福利 不可否认,Transformer-based模型彻底改变了处理非结 ...

最新文章

  1. 脱离公式谈谈对反向传播算法的理解
  2. python3中map的用法_python3中map()函数用法
  3. wxpython 表格粘贴,wxpython在整个应用程序中剪切复制和粘贴
  4. (转)Managed DirectX +C# 开发(入门篇)(六)
  5. android147 360 程序锁
  6. error: two or more data types in declaration specifiers原因及解决方法
  7. 科研财务mysql相减_基于PHP和MySQL技术的地方高校科研管理系统的设计与实现
  8. Axure中推动拉动元件不生效_mac系统axure元件不能拖动的非正常解决方法
  9. C语言编程软件的下载安装、使用和写代码
  10. 漫聊科技发展史——1. 人工智能的发展史
  11. BI报表工具FineReport的使用2【帆软聚合报表设计,最常用功能】
  12. python 四象限图_「四象限图」excel制作四象限图的方法图解步骤 - seo实验室
  13. Python显示WiFi密码
  14. 相似图像识别算法是什么,机器图像识别常用算法
  15. 亲民地理35期-雨中登泰山_我是亲民_新浪博客
  16. 计算机硬件及编程语言
  17. 视频教程-规范毕业论文及精美简历排版实战-Office/WPS
  18. 今天感受了一下ipad
  19. java下载m3u8视频,解密并合并ts(三)
  20. 一个依赖搞定Spring Boot 配置文件脱敏

热门文章

  1. 软件开发模型和软件测试模型
  2. web手机端如何定位(安卓版和ipone版),兼容移动端,定位准确
  3. 代码随想录第25天 | 216. 组合总和III、17. 电话号码的字母组合
  4. oracle tabe unlock_oracle常用命令
  5. 熙牛《新金融领域—科技交易论坛》圆满落幕
  6. Kotlin协程:挂起与恢复原理逆向刨析
  7. 字典数据结构-FST(Finite State Transducers)
  8. 模型精度不降反升!飞桨是这样改进PACT量化算法的!
  9. 从此以后我所有的荣誉都归属于你
  10. [Java反序列化]—CommonsCollections7(CC完结篇)