user crud
This commit is contained in:
		| @@ -3,6 +3,9 @@ DB_USER=root | ||||
| DB_DRIVER=mysql | ||||
| DB_PASSWORD=123edsaqw | ||||
| DB_NAME=mfw | ||||
| DB_CHARSET=utf8 | ||||
| DB_COLLATION=utf8_unicode_ci | ||||
| DB_PREFIX='' | ||||
|  | ||||
| VIEWS_PATH=/views | ||||
| VIEWS_CACHE_PATH=/views_cache | ||||
| @@ -12,6 +12,7 @@ use app\tables\columns\UserEditActionColumn; | ||||
| use app\tables\columns\UserViewActionColumn; | ||||
| use Exception; | ||||
| use http\Message; | ||||
| use Illuminate\Database\Eloquent\Collection; | ||||
| use Illuminate\Support\Facades\DB; | ||||
| use Itguild\Tables\ListJsonTable; | ||||
| use Itguild\Tables\ViewJsonTable; | ||||
| @@ -19,6 +20,7 @@ use JetBrains\PhpStorm\NoReturn; | ||||
| use kernel\App; | ||||
| use kernel\Controller; | ||||
| use kernel\IGTabel\btn\PrimaryBtn; | ||||
| use kernel\IGTabel\EloquentDataProvider; | ||||
| use kernel\IGTabel\ListJsonTableEloquentCollection; | ||||
| use kernel\IGTabel\ViewJsonTableEloquentModel; | ||||
| use Twig\Error\LoaderError; | ||||
| @@ -60,11 +62,9 @@ class UserController extends Controller{ | ||||
|     /** | ||||
|      * @throws \Exception | ||||
|      */ | ||||
|     public function actionIndex($page_id = 1): void | ||||
|     public function actionIndex($page_number = 1): void | ||||
|     { | ||||
|         $users = User::all(); | ||||
|  | ||||
|         $this->cgView->render("user/index.php", ['users' => $users, 'page_id' => $page_id]); | ||||
|         $this->cgView->render("user/index.php", ['page_number' => $page_number]); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|   | ||||
							
								
								
									
										46
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										46
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							| @@ -337,7 +337,7 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "illuminate/collections", | ||||
|             "version": "v11.18.1", | ||||
|             "version": "v11.19.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/illuminate/collections.git", | ||||
| @@ -392,7 +392,7 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "illuminate/conditionable", | ||||
|             "version": "v11.18.1", | ||||
|             "version": "v11.19.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/illuminate/conditionable.git", | ||||
| @@ -438,7 +438,7 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "illuminate/container", | ||||
|             "version": "v11.18.1", | ||||
|             "version": "v11.19.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/illuminate/container.git", | ||||
| @@ -489,16 +489,16 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "illuminate/contracts", | ||||
|             "version": "v11.18.1", | ||||
|             "version": "v11.19.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/illuminate/contracts.git", | ||||
|                 "reference": "be935e9d9115a57be74d20176f43fa8a207029f3" | ||||
|                 "reference": "ebe2b8d69b8fb1c07111e3500d464e77dfab3202" | ||||
|             }, | ||||
|             "dist": { | ||||
|                 "type": "zip", | ||||
|                 "url": "https://api.github.com/repos/illuminate/contracts/zipball/be935e9d9115a57be74d20176f43fa8a207029f3", | ||||
|                 "reference": "be935e9d9115a57be74d20176f43fa8a207029f3", | ||||
|                 "url": "https://api.github.com/repos/illuminate/contracts/zipball/ebe2b8d69b8fb1c07111e3500d464e77dfab3202", | ||||
|                 "reference": "ebe2b8d69b8fb1c07111e3500d464e77dfab3202", | ||||
|                 "shasum": "" | ||||
|             }, | ||||
|             "require": { | ||||
| @@ -533,20 +533,20 @@ | ||||
|                 "issues": "https://github.com/laravel/framework/issues", | ||||
|                 "source": "https://github.com/laravel/framework" | ||||
|             }, | ||||
|             "time": "2024-07-09T13:57:38+00:00" | ||||
|             "time": "2024-07-29T06:48:51+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "illuminate/database", | ||||
|             "version": "v11.18.1", | ||||
|             "version": "v11.19.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/illuminate/database.git", | ||||
|                 "reference": "3785e0d14d8e427b72db08a9c969d4afdcf21cba" | ||||
|                 "reference": "db151e9a3221705cb4149c39dce2c51799708637" | ||||
|             }, | ||||
|             "dist": { | ||||
|                 "type": "zip", | ||||
|                 "url": "https://api.github.com/repos/illuminate/database/zipball/3785e0d14d8e427b72db08a9c969d4afdcf21cba", | ||||
|                 "reference": "3785e0d14d8e427b72db08a9c969d4afdcf21cba", | ||||
|                 "url": "https://api.github.com/repos/illuminate/database/zipball/db151e9a3221705cb4149c39dce2c51799708637", | ||||
|                 "reference": "db151e9a3221705cb4149c39dce2c51799708637", | ||||
|                 "shasum": "" | ||||
|             }, | ||||
|             "require": { | ||||
| @@ -601,11 +601,11 @@ | ||||
|                 "issues": "https://github.com/laravel/framework/issues", | ||||
|                 "source": "https://github.com/laravel/framework" | ||||
|             }, | ||||
|             "time": "2024-07-26T06:18:25+00:00" | ||||
|             "time": "2024-07-30T07:00:12+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "illuminate/filesystem", | ||||
|             "version": "v11.18.1", | ||||
|             "version": "v11.19.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/illuminate/filesystem.git", | ||||
| @@ -672,7 +672,7 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "illuminate/macroable", | ||||
|             "version": "v11.18.1", | ||||
|             "version": "v11.19.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/illuminate/macroable.git", | ||||
| @@ -718,16 +718,16 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "illuminate/support", | ||||
|             "version": "v11.18.1", | ||||
|             "version": "v11.19.0", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://github.com/illuminate/support.git", | ||||
|                 "reference": "135bfb40087df34e7eae3ed699e753442f349020" | ||||
|                 "reference": "f3c19ee61d875dca1045df2d90000ae97f1645f9" | ||||
|             }, | ||||
|             "dist": { | ||||
|                 "type": "zip", | ||||
|                 "url": "https://api.github.com/repos/illuminate/support/zipball/135bfb40087df34e7eae3ed699e753442f349020", | ||||
|                 "reference": "135bfb40087df34e7eae3ed699e753442f349020", | ||||
|                 "url": "https://api.github.com/repos/illuminate/support/zipball/f3c19ee61d875dca1045df2d90000ae97f1645f9", | ||||
|                 "reference": "f3c19ee61d875dca1045df2d90000ae97f1645f9", | ||||
|                 "shasum": "" | ||||
|             }, | ||||
|             "require": { | ||||
| @@ -788,7 +788,7 @@ | ||||
|                 "issues": "https://github.com/laravel/framework/issues", | ||||
|                 "source": "https://github.com/laravel/framework" | ||||
|             }, | ||||
|             "time": "2024-07-26T05:48:25+00:00" | ||||
|             "time": "2024-07-30T06:57:25+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "itguild/forms", | ||||
| @@ -851,11 +851,11 @@ | ||||
|         }, | ||||
|         { | ||||
|             "name": "itguild/tables", | ||||
|             "version": "0.1.7", | ||||
|             "version": "0.1.8", | ||||
|             "source": { | ||||
|                 "type": "git", | ||||
|                 "url": "https://git.itguild.info/ItGuild/tables", | ||||
|                 "reference": "b7fea4122c25d8ba9eafd58c07d65e829ea4c383" | ||||
|                 "reference": "d6d703aaa6ea26005b029d1110b96b268ea30fe7" | ||||
|             }, | ||||
|             "type": "library", | ||||
|             "autoload": { | ||||
| @@ -873,7 +873,7 @@ | ||||
|                     "email": "apuc06@mail.ru" | ||||
|                 } | ||||
|             ], | ||||
|             "time": "2024-07-30T09:20:16+00:00" | ||||
|             "time": "2024-07-31T09:48:26+00:00" | ||||
|         }, | ||||
|         { | ||||
|             "name": "madesimple/php-arrays", | ||||
|   | ||||
| @@ -1,22 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
|  | ||||
| namespace core\console; | ||||
|  | ||||
|  | ||||
| use Illuminate\Database\Migrations\MigrationCreator; | ||||
|  | ||||
| class CgMigrationCreator extends MigrationCreator | ||||
| { | ||||
|  | ||||
|     /** | ||||
|      * Get the path to the stubs. | ||||
|      * | ||||
|      * @return string | ||||
|      */ | ||||
|     public function stubPath() | ||||
|     { | ||||
|         return ROOT_DIR . '/core/console/migrations/stubs'; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,48 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
|  | ||||
| namespace core\console; | ||||
|  | ||||
|  | ||||
| use core\App; | ||||
| use core\Database; | ||||
| use Phroute\Phroute\Dispatcher; | ||||
|  | ||||
| class ConsoleApp extends App | ||||
| { | ||||
|     public $argv; | ||||
|  | ||||
|     public function run() | ||||
|     { | ||||
|         $this->setMods(); | ||||
|         if(!$rout = $this->getRout()){ | ||||
|             echo "Not found \n"; | ||||
|             exit(); | ||||
|         } | ||||
|         App::$db = new Database(); | ||||
|         $dispatcher = new Dispatcher(App::$collector->getData()); | ||||
|         $response = $dispatcher->dispatch('GET', $rout); | ||||
|         echo $response; | ||||
|     } | ||||
|  | ||||
|     public function setArgv($argv) | ||||
|     { | ||||
|         $this->argv = $argv; | ||||
|         return $this; | ||||
|     } | ||||
|  | ||||
|     private function getRout() | ||||
|     { | ||||
|         if(isset($this->argv[1])){ | ||||
|             return $this->argv[1]; | ||||
|         } | ||||
|         return null; | ||||
|     } | ||||
|  | ||||
|     public static function start() | ||||
|     { | ||||
|         return new self(); | ||||
|     } | ||||
|  | ||||
|  | ||||
| } | ||||
| @@ -1,30 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
|  | ||||
| namespace core\console; | ||||
|  | ||||
|  | ||||
| use samejack\PHP\PHP_ArgvParser; | ||||
|  | ||||
| class ConsoleController | ||||
| { | ||||
|     /** | ||||
|      * @var Out | ||||
|      */ | ||||
|     public $out; | ||||
|     protected $argv; | ||||
|  | ||||
|     public function __construct() | ||||
|     { | ||||
|         $this->out = new Out(); | ||||
|         $argv = $_SERVER['argv']; | ||||
|         unset($argv[0]); | ||||
|         unset($argv[1]); | ||||
|         if(!empty($argv)){ | ||||
|             $argvParser = new PHP_ArgvParser(); | ||||
|             $tmp = implode(" ", $argv); | ||||
|             $this->argv = $argvParser->parseConfigs($tmp); | ||||
|         } | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -1,78 +0,0 @@ | ||||
| <?php | ||||
|  | ||||
|  | ||||
| namespace core\console; | ||||
|  | ||||
|  | ||||
| class Out | ||||
| { | ||||
|     private $foreground_colors = array(); | ||||
|     private $background_colors = array(); | ||||
|  | ||||
|     public function __construct() | ||||
|     { | ||||
|         // Set up shell colors | ||||
|         $this->foreground_colors['black'] = '0;30'; | ||||
|         $this->foreground_colors['dark_gray'] = '1;30'; | ||||
|         $this->foreground_colors['blue'] = '0;34'; | ||||
|         $this->foreground_colors['light_blue'] = '1;34'; | ||||
|         $this->foreground_colors['green'] = '0;32'; | ||||
|         $this->foreground_colors['light_green'] = '1;32'; | ||||
|         $this->foreground_colors['cyan'] = '0;36'; | ||||
|         $this->foreground_colors['light_cyan'] = '1;36'; | ||||
|         $this->foreground_colors['red'] = '0;31'; | ||||
|         $this->foreground_colors['light_red'] = '1;31'; | ||||
|         $this->foreground_colors['purple'] = '0;35'; | ||||
|         $this->foreground_colors['light_purple'] = '1;35'; | ||||
|         $this->foreground_colors['brown'] = '0;33'; | ||||
|         $this->foreground_colors['yellow'] = '1;33'; | ||||
|         $this->foreground_colors['light_gray'] = '0;37'; | ||||
|         $this->foreground_colors['white'] = '1;37'; | ||||
|  | ||||
|         $this->background_colors['black'] = '40'; | ||||
|         $this->background_colors['red'] = '41'; | ||||
|         $this->background_colors['green'] = '42'; | ||||
|         $this->background_colors['yellow'] = '43'; | ||||
|         $this->background_colors['blue'] = '44'; | ||||
|         $this->background_colors['magenta'] = '45'; | ||||
|         $this->background_colors['cyan'] = '46'; | ||||
|         $this->background_colors['light_gray'] = '47'; | ||||
|     } | ||||
|  | ||||
|     // Returns colored string | ||||
|     public function get($string, $foreground_color = null, $background_color = null) | ||||
|     { | ||||
|         $colored_string = ""; | ||||
|  | ||||
|         // Check if given foreground color found | ||||
|         if (isset($this->foreground_colors[$foreground_color])) { | ||||
|             $colored_string .= "\033[" . $this->foreground_colors[$foreground_color] . "m"; | ||||
|         } | ||||
|         // Check if given background color found | ||||
|         if (isset($this->background_colors[$background_color])) { | ||||
|             $colored_string .= "\033[" . $this->background_colors[$background_color] . "m"; | ||||
|         } | ||||
|  | ||||
|         // Add string and end coloring | ||||
|         $colored_string .= $string . "\033[0m"; | ||||
|  | ||||
|         return $colored_string; | ||||
|     } | ||||
|  | ||||
|     public function r($string, $foreground_color = null, $background_color = null) | ||||
|     { | ||||
|         echo $this->get($string, $foreground_color, $background_color) . "\n"; | ||||
|     } | ||||
|  | ||||
|     // Returns all foreground color names | ||||
|     public function getForegroundColors() | ||||
|     { | ||||
|         return array_keys($this->foreground_colors); | ||||
|     } | ||||
|  | ||||
|     // Returns all background color names | ||||
|     public function getBackgroundColors() | ||||
|     { | ||||
|         return array_keys($this->background_colors); | ||||
|     } | ||||
| } | ||||
| @@ -42,4 +42,11 @@ class Database | ||||
|  | ||||
|         $this->schema = $this->capsule->schema(); | ||||
|     } | ||||
|  | ||||
|     public function createBuilder(string $table_name): \Illuminate\Database\Query\Builder | ||||
|     { | ||||
|         $builder = new \Illuminate\Database\Query\Builder($this->schema->getConnection()); | ||||
|         $builder->from($table_name); | ||||
|         return $builder; | ||||
|     } | ||||
| } | ||||
							
								
								
									
										78
									
								
								kernel/IGTabel/EloquentDataProvider.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								kernel/IGTabel/EloquentDataProvider.php
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| <?php | ||||
|  | ||||
| namespace kernel\IGTabel; | ||||
|  | ||||
| use app\helpers\Debug; | ||||
| use Exception; | ||||
| use Illuminate\Database\Eloquent\Model; | ||||
|  | ||||
| class EloquentDataProvider | ||||
| { | ||||
|     protected int $totalCount; | ||||
|  | ||||
|     protected int $perPage = 10; | ||||
|  | ||||
|     protected int $currentPage = 1; | ||||
|  | ||||
|     protected Model $model; | ||||
|  | ||||
|     protected $queryBuilder = false; | ||||
|  | ||||
|     protected array $options = []; | ||||
|     protected array $meta = []; | ||||
|     protected string $jsonStr = ''; | ||||
|  | ||||
|     /** | ||||
|      * @throws Exception | ||||
|      */ | ||||
|     public function __construct($source, array $options) | ||||
|     { | ||||
|         if (is_string($source)) { | ||||
|             $this->queryBuilder = $source::query(); | ||||
|             $model = new $source(); | ||||
|         } elseif (is_object($source)) { | ||||
|             $this->queryBuilder = $source; | ||||
|             $model = $source->getModel(); | ||||
|         } else { | ||||
|             throw new Exception(message: "source is not valid"); | ||||
|         } | ||||
|         $this->options = $options; | ||||
|         $this->currentPage = $this->options['currentPage'] ?? 1; | ||||
|         $this->perPage = $this->options['perPage'] ?? 10; | ||||
|         $this->meta['total'] = $model->count(); | ||||
|         $this->meta['totalWithFilters'] = $this->queryBuilder->count(); | ||||
|         $this->meta['columns'] = $options['columns'] ?? $model->labels(); | ||||
|         $this->meta['perPage'] = $options['perPage'] ?? 10; | ||||
|         $this->meta['currentPage'] = $options['currentPage'] ?? 1; | ||||
|         $this->meta['baseUrl'] = $options['baseUrl'] ?? $model->table; | ||||
|         $this->meta['params'] = $options['params'] ?? []; | ||||
|         $this->meta['actions'] = $options['actions'] ?? []; | ||||
|         $this->createQuery(); | ||||
|  | ||||
|         $this->jsonStr = (new JSONCreator($this->meta, $this->getCollection()->toArray()))->getJson(); | ||||
|  | ||||
|     } | ||||
|  | ||||
|     public function createQuery(): void | ||||
|     { | ||||
|         if ($this->currentPage > 1) { | ||||
|             $this->queryBuilder->skip(($this->currentPage - 1) * $this->perPage)->take($this->perPage); | ||||
|         } else { | ||||
|             $this->queryBuilder->take($this->perPage); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     public function getCollection() | ||||
|     { | ||||
|         return $this->queryBuilder->get(); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * @return string|null | ||||
|      */ | ||||
|     public function getJson(): string|null | ||||
|     { | ||||
|         return $this->jsonStr; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -13,16 +13,7 @@ class JSONCreator | ||||
|         $params = empty($meta['params']) ? ["class" => "table table-bordered", "border" => "1"] : $meta['params']; | ||||
|         if ($meta) { | ||||
|             $this->informationArray = [ | ||||
|                 "meta" => [ | ||||
|                     "columns" => $meta['columns'] ?? [], | ||||
|                     "rows" => $meta['rows'] ?? [], | ||||
|                     "perPage" => $meta['perPage'] ?? 10, | ||||
|                     "currentPage" => $meta['currentPage'] ?? 1, | ||||
|                     "baseUrl" => $meta['baseUrl'] ?? '', | ||||
|                     "actions" => $meta['actions'] ?? '', | ||||
|                     "params" => $params | ||||
|  | ||||
|                 ], | ||||
|                 "meta" => $meta, | ||||
|                 "data" => $data ?? [] | ||||
|             ]; | ||||
|         } | ||||
|   | ||||
| @@ -11,7 +11,7 @@ return new class extends Migration | ||||
|      */ | ||||
|     public function up(): void | ||||
|     { | ||||
|         Schema::create('{{ table }}', function (Blueprint $table) { | ||||
|         \kernel\App::$db->schema->create('{{ table }}', function (Blueprint $table) { | ||||
|             $table->id(); | ||||
|             $table->timestamps(); | ||||
|         }); | ||||
| @@ -22,6 +22,6 @@ return new class extends Migration | ||||
|      */ | ||||
|     public function down(): void | ||||
|     { | ||||
|         Schema::dropIfExists('{{ table }}'); | ||||
|         \kernel\App::$db->schema->dropIfExists('{{ table }}'); | ||||
|     } | ||||
| }; | ||||
|   | ||||
| @@ -11,7 +11,7 @@ return new class extends Migration | ||||
|      */ | ||||
|     public function up(): void | ||||
|     { | ||||
|         Schema::table('{{ table }}', function (Blueprint $table) { | ||||
|         \kernel\App::$db->schema->table('{{ table }}', function (Blueprint $table) { | ||||
|             // | ||||
|         }); | ||||
|     } | ||||
| @@ -21,7 +21,7 @@ return new class extends Migration | ||||
|      */ | ||||
|     public function down(): void | ||||
|     { | ||||
|         Schema::table('{{ table }}', function (Blueprint $table) { | ||||
|         \kernel\App::$db->schema->table('{{ table }}', function (Blueprint $table) { | ||||
|             // | ||||
|         }); | ||||
|     } | ||||
|   | ||||
| @@ -11,9 +11,8 @@ return new class extends Migration | ||||
|      */ | ||||
|     public function up(): void | ||||
|     { | ||||
|         Schema::create('some', function (Blueprint $table) { | ||||
|             $table->id(); | ||||
|             $table->timestamps(); | ||||
|         \kernel\App::$db->schema->table('user', function (Blueprint $table) { | ||||
|             $table->integer('status')->default(1); | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
| @@ -22,6 +21,8 @@ return new class extends Migration | ||||
|      */ | ||||
|     public function down(): void | ||||
|     { | ||||
|         Schema::dropIfExists('some'); | ||||
|         \kernel\App::$db->schema->table('user', function (Blueprint $table) { | ||||
|             $table->dropColumn(['status']); | ||||
|         }); | ||||
|     } | ||||
| }; | ||||
							
								
								
									
										2
									
								
								rout.php
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								rout.php
									
									
									
									
									
								
							| @@ -10,7 +10,7 @@ App::$collector->get('/example', [MainController::class, 'actionExample']); | ||||
| App::$collector->group(["prefix" => "admin"], function (RouteCollector $router){ | ||||
|     App::$collector->group(["prefix" => "user"], callback: function (RouteCollector $router){ | ||||
|         App::$collector->get('/', [\app\controllers\UserController::class, 'actionIndex']); | ||||
|         App::$collector->get('/page/{page_id}', [\app\controllers\UserController::class, 'actionIndex']); | ||||
|         App::$collector->get('/page/{page_number}', [\app\controllers\UserController::class, 'actionIndex']); | ||||
|         App::$collector->get('/create', [\app\controllers\UserController::class, 'actionCreate']); | ||||
|         App::$collector->post("/", [\app\controllers\UserController::class, 'actionAdd']); | ||||
|         App::$collector->get('/{id}', [\app\controllers\UserController::class, 'actionView']); | ||||
|   | ||||
| @@ -1,23 +1,22 @@ | ||||
| <?php | ||||
|  | ||||
| /** | ||||
|  * @var \Illuminate\Database\Eloquent\Collection $users | ||||
|  * @var int $page_id | ||||
|  * @var int $page_number | ||||
|  */ | ||||
|  | ||||
| use app\models\User; | ||||
| use app\tables\columns\UserDeleteActionColumn; | ||||
| use app\tables\columns\UserEditActionColumn; | ||||
| use app\tables\columns\UserViewActionColumn; | ||||
| use Illuminate\Support\Facades\DB; | ||||
| use Itguild\Tables\ListJsonTable; | ||||
| use kernel\IGTabel\btn\PrimaryBtn; | ||||
| use kernel\IGTabel\ListJsonTableEloquentCollection; | ||||
|  | ||||
| $perPage = 3; | ||||
| $chunks = $users->forPage($page_id, $perPage); | ||||
| $dataProvider = new ListJsonTableEloquentCollection($chunks, [ | ||||
|     'model' => User::class, | ||||
|     'perPage' => 5, | ||||
|  | ||||
| $dataProvider = new \kernel\IGTabel\EloquentDataProvider(User::where(['status' => 2]), [ | ||||
|     'currentPage' => $page_number, | ||||
|     'perPage' => 3, | ||||
|     'params' => ["class" => "table table-bordered", "border" => "2"], | ||||
|     'baseUrl' => "/admin/user", | ||||
| ]); | ||||
| @@ -26,8 +25,8 @@ $table->beforePrint(function () { | ||||
|     return PrimaryBtn::create("Создать", "/admin/user/create")->fetch(); | ||||
|     //return (new PrimaryBtn("Создать", "/admin/user/create"))->fetch(); | ||||
| }); | ||||
| $table->afterPrint(function () use ($page_id, $users, $perPage) { | ||||
|     $pagination = new \Itguild\Tables\Pagination($users->count(), $perPage, $page_id, "/admin/user/page"); | ||||
| $table->afterPrint(function ($meta) { | ||||
|     $pagination = new \Itguild\Tables\Pagination($meta['totalWithFilters'], $meta['perPage'], $meta['currentPage'], $meta['baseUrl'] . "/page"); | ||||
|     $pagination->create(); | ||||
|     return $pagination->fetch(); | ||||
| }); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user