<?php /** * @var \Illuminate\Database\Eloquent\Collection $users * @var int $page_number */ use Itguild\EloquentTable\EloquentDataProvider; use Itguild\EloquentTable\ListEloquentTable; use kernel\IGTabel\action_column\DeleteActionColumn; use kernel\IGTabel\action_column\EditActionColumn; use kernel\IGTabel\action_column\ViewActionColumn; use kernel\IGTabel\btn\PrimaryBtn; use kernel\modules\user\models\User; use kernel\widgets\IconBtn\IconBtnCreateWidget; use kernel\widgets\IconBtn\IconBtnDeleteWidget; use kernel\widgets\IconBtn\IconBtnEditWidget; use kernel\widgets\IconBtn\IconBtnViewWidget; $table = new ListEloquentTable(new EloquentDataProvider(User::class, [ 'currentPage' => $page_number, 'perPage' => 3, 'params' => ["class" => "table table-bordered", "border" => "2"], 'baseUrl' => "/admin/user", 'filters' => ['email'], ])); $entityRelation = new \kernel\EntityRelation(); $additionals = $entityRelation->getEntityRelationsBySlug("user"); foreach ($additionals as $additional) { $table->addColumn($additional, $additional, function ($id) use ($entityRelation, $additional) { return $entityRelation->getAdditionalPropertyByEntityId("user", $id, $additional); }); } $table->columns([ 'username' => [ "filter" => [ 'class' => \Itguild\Tables\Filter\InputTextFilter::class ] ], 'created_at' => function ($data) { if (!$data){ return null; } return (new DateTimeImmutable($data))->format("d-m-Y"); }, 'updated_at' => function ($data) { if (!$data){ return null; } return (new DateTimeImmutable($data))->format("d-m-Y"); } ]); $table->beforePrint(function () { return IconBtnCreateWidget::create(['url' => '/admin/user/create'])->run(); }); $table->addAction(function($row) { return IconBtnViewWidget::create(['url' => '/admin/user/view/' . $row['id']])->run(); }); $table->addAction(function($row) { return IconBtnEditWidget::create(['url' => '/admin/user/update/' . $row['id']])->run(); }); $table->addAction(function($row) { return IconBtnDeleteWidget::create(['url' => '/admin/user/delete/' . $row['id']])->run(); }); $table->create(); $table->render();