<?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; $get = (new \kernel\Request())->get(); $table = new ListEloquentTable(new EloquentDataProvider(User::class, [ 'currentPage' => $page_number, 'perPage' => 3, 'params' => ["class" => "table table-bordered", "border" => "2"], 'baseUrl' => "/admin/user", 'searchPrefix' => "", 'searchParams' => $get,])); $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' => \kernel\filters\BootstrapTextFilter::class, 'value' => $get['username'] ?? null, ] ], 'user_photo' => function ($data) { return $data ? "<img src='$data' width='150px'>" : ""; }, '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();