Compare commits
9 Commits
Author | SHA1 | Date | |
---|---|---|---|
708045664c | |||
d3cda0bd8f | |||
3bb6ae8b07 | |||
850b0b315a | |||
cba0498e7d | |||
b4afddc7f7 | |||
50b642be1a | |||
e84051ae21 | |||
59e065458d |
@ -1,8 +1,10 @@
|
||||
{
|
||||
"name": "itguild/eloquent_table",
|
||||
"name": "itguild/eloquent-table",
|
||||
"type": "library",
|
||||
"require": {
|
||||
"itguild/tables": "^0.1.9",
|
||||
"itguild/tables": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"illuminate/database": "^12.0@dev",
|
||||
"illuminate/filesystem": "^12.0@dev",
|
||||
"vlucas/phpdotenv": "^5.6@dev",
|
||||
|
166
composer.lock
generated
166
composer.lock
generated
@ -4,8 +4,36 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "23ab91e73c3a10e841f8f2b12f05e49d",
|
||||
"content-hash": "815b5be2be1ac86399ea520c5bdbe788",
|
||||
"packages": [
|
||||
{
|
||||
"name": "itguild/tables",
|
||||
"version": "1.0.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://git.itguild.info/ItGuild/tables",
|
||||
"reference": "ad18d94489c20599ac1080a8b4f7f3199f206fdf"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Itguild\\Tables\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kavalar",
|
||||
"email": "apuc06@mail.ru"
|
||||
}
|
||||
],
|
||||
"time": "2024-08-29T10:13:51+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "brick/math",
|
||||
"version": "0.12.1",
|
||||
@ -500,12 +528,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/illuminate/database.git",
|
||||
"reference": "97a835e279896de51754c2316f9812884b294e2c"
|
||||
"reference": "e8a4eba8573bb907b0336033851cad7adbca4394"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/illuminate/database/zipball/97a835e279896de51754c2316f9812884b294e2c",
|
||||
"reference": "97a835e279896de51754c2316f9812884b294e2c",
|
||||
"url": "https://api.github.com/repos/illuminate/database/zipball/e8a4eba8573bb907b0336033851cad7adbca4394",
|
||||
"reference": "e8a4eba8573bb907b0336033851cad7adbca4394",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -561,7 +589,7 @@
|
||||
"issues": "https://github.com/laravel/framework/issues",
|
||||
"source": "https://github.com/laravel/framework"
|
||||
},
|
||||
"time": "2024-08-01T21:50:50+00:00"
|
||||
"time": "2024-08-16T18:32:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "illuminate/filesystem",
|
||||
@ -753,44 +781,18 @@
|
||||
},
|
||||
"time": "2024-08-05T14:24:50+00:00"
|
||||
},
|
||||
{
|
||||
"name": "itguild/tables",
|
||||
"version": "0.1.13",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://git.itguild.info/ItGuild/tables",
|
||||
"reference": "d98ddded07131f602486783f5f016002ea7d7fb7"
|
||||
},
|
||||
"type": "library",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Itguild\\Tables\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Kavalar",
|
||||
"email": "apuc06@mail.ru"
|
||||
}
|
||||
],
|
||||
"time": "2024-08-07T09:43:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "nesbot/carbon",
|
||||
"version": "dev-master",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/briannesbitt/Carbon.git",
|
||||
"reference": "cb4374784c87d0a0294e8513a52eb63c0aff3139"
|
||||
"reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/cb4374784c87d0a0294e8513a52eb63c0aff3139",
|
||||
"reference": "cb4374784c87d0a0294e8513a52eb63c0aff3139",
|
||||
"url": "https://api.github.com/repos/briannesbitt/Carbon/zipball/bbd3eef89af8ba66a3aa7952b5439168fbcc529f",
|
||||
"reference": "bbd3eef89af8ba66a3aa7952b5439168fbcc529f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -884,7 +886,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-07-16T22:29:20+00:00"
|
||||
"time": "2024-08-19T06:22:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpoption/phpoption",
|
||||
@ -1190,18 +1192,86 @@
|
||||
],
|
||||
"time": "2024-08-06T10:13:52+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/deprecation-contracts",
|
||||
"version": "dev-main",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/deprecation-contracts.git",
|
||||
"reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
|
||||
"reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.1"
|
||||
},
|
||||
"default-branch": true,
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-main": "3.5-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"files": [
|
||||
"function.php"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "A generic function and convention to trigger deprecation notices",
|
||||
"homepage": "https://symfony.com",
|
||||
"support": {
|
||||
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-04-18T09:32:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "7.2.x-dev",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "9a54be47a3813ace04e40e0903b651f3a52d952d"
|
||||
"reference": "0470b8dc10ca08d23aeaabbed5b961c928e4d89d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/9a54be47a3813ace04e40e0903b651f3a52d952d",
|
||||
"reference": "9a54be47a3813ace04e40e0903b651f3a52d952d",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/0470b8dc10ca08d23aeaabbed5b961c928e4d89d",
|
||||
"reference": "0470b8dc10ca08d23aeaabbed5b961c928e4d89d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@ -1252,7 +1322,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-08-06T10:13:52+00:00"
|
||||
"time": "2024-08-13T14:29:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@ -1579,16 +1649,17 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
"reference": "a50ed69ace45368e096bc3981f456089253ed6cb"
|
||||
"reference": "a1c4be3a5885b9785b131c5a30d93e611848cb1d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/a50ed69ace45368e096bc3981f456089253ed6cb",
|
||||
"reference": "a50ed69ace45368e096bc3981f456089253ed6cb",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/a1c4be3a5885b9785b131c5a30d93e611848cb1d",
|
||||
"reference": "a1c4be3a5885b9785b131c5a30d93e611848cb1d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=8.2",
|
||||
"symfony/deprecation-contracts": "^2.5|^3",
|
||||
"symfony/polyfill-mbstring": "~1.0",
|
||||
"symfony/translation-contracts": "^2.5|^3.0"
|
||||
},
|
||||
@ -1665,7 +1736,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2024-08-05T08:22:14+00:00"
|
||||
"time": "2024-08-19T08:28:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation-contracts",
|
||||
@ -1752,12 +1823,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/twbs/bootstrap.git",
|
||||
"reference": "4e954ea3322e0a2c6428159108c676428a05d748"
|
||||
"reference": "e3e00b5002139adb0d5dadd6002e15b7b6cd371f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/twbs/bootstrap/zipball/4e954ea3322e0a2c6428159108c676428a05d748",
|
||||
"reference": "4e954ea3322e0a2c6428159108c676428a05d748",
|
||||
"url": "https://api.github.com/repos/twbs/bootstrap/zipball/e3e00b5002139adb0d5dadd6002e15b7b6cd371f",
|
||||
"reference": "e3e00b5002139adb0d5dadd6002e15b7b6cd371f",
|
||||
"shasum": ""
|
||||
},
|
||||
"replace": {
|
||||
@ -1795,7 +1866,7 @@
|
||||
"issues": "https://github.com/twbs/bootstrap/issues",
|
||||
"source": "https://github.com/twbs/bootstrap/tree/main"
|
||||
},
|
||||
"time": "2024-08-07T04:51:04+00:00"
|
||||
"time": "2024-08-27T12:36:45+00:00"
|
||||
},
|
||||
{
|
||||
"name": "vlucas/phpdotenv",
|
||||
@ -1957,7 +2028,6 @@
|
||||
"time": "2022-03-08T17:03:00+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "dev",
|
||||
"stability-flags": {
|
||||
|
21
index.php
21
index.php
@ -44,16 +44,21 @@ try {
|
||||
'currentPage' => 1,
|
||||
'perPage' => 3,
|
||||
'params' => ["class" => "table table-bordered", "border" => "2"],
|
||||
'baseUrl' => "/admin/user"
|
||||
'baseUrl' => "/admin/user",
|
||||
'filters' => ["email"]
|
||||
]));
|
||||
$table->columns([
|
||||
'created_at' => function ($data) {
|
||||
if (!$data){
|
||||
return null;
|
||||
}
|
||||
|
||||
return (new DateTimeImmutable($data))->format("d-m-Y");
|
||||
},
|
||||
'username' => [
|
||||
'filter' => [
|
||||
'class' => \Itguild\Tables\Filter\InputTextFilter::class
|
||||
]
|
||||
],
|
||||
'created_at' => [
|
||||
'format' => 'date:d-m-Y',
|
||||
'filter' => [
|
||||
'class' => \Itguild\Tables\Filter\InputDateFilter::class
|
||||
]
|
||||
],
|
||||
'updated_at' => function ($data) {
|
||||
if (!$data){
|
||||
return null;
|
||||
|
@ -4,6 +4,7 @@ namespace Itguild\EloquentTable;
|
||||
|
||||
use Exception;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use itguild\forms\debug\Debug;
|
||||
|
||||
class EloquentDataProvider
|
||||
{
|
||||
@ -19,6 +20,7 @@ class EloquentDataProvider
|
||||
|
||||
protected array $options = [];
|
||||
protected array $meta = [];
|
||||
protected array $filters = [];
|
||||
protected string $jsonStr = '';
|
||||
|
||||
/**
|
||||
@ -46,10 +48,9 @@ class EloquentDataProvider
|
||||
$this->meta['baseUrl'] = $options['baseUrl'] ?? $model->table;
|
||||
$this->meta['params'] = $options['params'] ?? [];
|
||||
$this->meta['actions'] = $options['actions'] ?? [];
|
||||
$this->filters = $options['filters'] ?? [];
|
||||
$this->createQuery();
|
||||
|
||||
$this->jsonStr = (new JSONCreator($this->meta, $this->getCollection()->toArray()))->getJson();
|
||||
|
||||
$this->jsonStr = (new JSONCreator($this->meta, $this->getCollection()->toArray(), $this->filters,))->getJson();
|
||||
}
|
||||
|
||||
public function createQuery(): void
|
||||
|
@ -7,12 +7,13 @@ class JSONCreator
|
||||
{
|
||||
protected array $informationArray = [];
|
||||
|
||||
public function __construct(array $meta, array $data)
|
||||
public function __construct(array $meta, array $data, array $filters = [])
|
||||
{
|
||||
$params = empty($meta['params']) ? ["class" => "table table-bordered", "border" => "1"] : $meta['params'];
|
||||
if ($meta) {
|
||||
$this->informationArray = [
|
||||
"meta" => $meta,
|
||||
"filters" => $filters,
|
||||
"data" => $data ?? []
|
||||
];
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user