Laravel/Javascript implementation of dynamic HTML tables
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


monkeyTables are a set of PHP and JavaScript libraries with the necessary styling, to provide you with a simple and effective package, that will allow you to create powerful tables directly made from your database. It brings a lot of nice features including

  • automatic filtering
  • sorting
  • presets
  • inline editing
  • tabbing
  • and much more..


To install the package, you just let composer do the work for you:
composer.phar require "designitgmbh/monkey-tables":"dev-master"

User model

Because we offer presets, which are unique per user and can be restricted, monkeyTables need to access a User Model, which has a relation to a profile from MonkeyAccess.


namespace App\Models;

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


This package is compatible with Lumen, but you will have to do some minimal changes:

  1. Enable Facades
  2. Enable Eloquent
  3. Install larasupport:



In a controller, you can build up your table, and send it back as JSON.

$mTable = new mTable;

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

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

Don't forget to add a route to the controller.

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


After including all dependencies, you just need to add a div, which will hold the table, and a small javascript snippet.

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

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