designitgmbh/monkey-tables

monkeyTables 是一个简单的包,允许您创建强大的表格

dev-master / 1.0.x-dev 2021-03-11 18:29 UTC

This package is not auto-updated.

Last update: 2024-09-21 14:59:11 UTC


README

monkeyTables 是一套 PHP 和 JavaScript 库,包括必要的样式,为您提供简单有效的包,允许您直接从数据库创建强大的表格。它包含许多优点,包括

  • 自动过滤
  • 排序
  • 预设
  • 行内编辑
  • 分页
  • 等等...

安装

要安装该包,只需让 composer 为您完成工作
composer.phar require "designitgmbh/monkey-tables":"dev-master"

用户模型

由于我们提供预设,这些预设对每个用户是唯一的并且可以受限,因此 monkeyTables 需要访问一个用户模型,该模型与 MonkeyAccess 的配置文件有关系。

<?php

namespace App\Models;

class User extends SystemUser {
 	public function profile()
	{
		return $this->belongsTo('Designitgmbh\MonkeyAccess\Models\Profile', 'profile_id');
	}
}

Lumen

此包与 Lumen 兼容,但您需要进行一些最小更改

  1. 启用 Facades
  2. 启用 Eloquent
  3. 安装 larasupport: https://github.com/irazasyed/larasupport

用法

后端

在控制器中,您可以构建表格,并以 JSON 格式发送回去。

$mTable = new mTable;
$mTable
	->setRequest(Request::all())
	->source('Project');

$mTable->add(
	(new mTableColumn("#", "id"))
)->add(
	(new mTableColumn("Name", "name"))
		->setClickable("/project/{{ID}}", "id")		
)->add(
	(new mTableColumn("Department", "department->name"))
		->setClickable("/department/{{ID}}", "department->id")
)->add(
	(new mTableColumn("Unit", "unit->name"))
		->setClickable("/unit/{{ID}}", "unit->id")
);

return response()->json($mTable->render());

别忘了为控制器添加路由。

$app->post('/project/indexList', 'ProjectController@indexList');

前端

包含所有依赖项后,只需添加一个 div,其中包含表格,并添加一小段 JavaScript 代码。

<div id="mtable"></div>

<script>
	var frame = new mTableFrameStd("#mtable", {});
	var table = new mTableStd({
		frame: frame,
		url: "/project/indexList"
	});

	frame.addTable(table);
	frame.show();
</script>