PHP code example of mimisk / pinakas
1. Go to this page and download the library: Download mimisk/pinakas library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
mimisk / pinakas example snippets
'empty_state' => [
'title' => 'No records found',
'description' => 'There are no rows available yet.',
'search_title' => 'No matching results',
'search_description' => 'Try a different keyword or clear your search.',
],
'search' => [
'enabled' => false,
'query_name' => 'search',
'show_label' => true,
'label' => 'Search',
'placeholder' => 'Search...',
'rounded' => 'rounded-none',
'debounce_ms' => 350,
'min_chars' => 3,
'icon' => 'magnifying-glass',
],
'sorting' => [
'enabled' => false,
'query_name' => 'sort',
'direction_query_name' => 'direction',
'default_direction' => 'asc',
'icon_position' => 'right', // left | right
],
'bulk' => [
'selected_input_name' => 'selected_ids',
'actions' => [],
],
'ui' => [
'accent_color' => 'amber-600',
'table_bordered' => false,
'table_rounded' => 'rounded-xs',
'table_striped' => false,
'table_hoverable' => true,
'pagination_dropdown_rounded' => 'rounded-none',
'action_button_rounded' => 'rounded-none',
'action_dropdown_rounded' => 'rounded-none',
],
'columns' => [
'date_format' => 'd-m-Y',
'time_format' => 'H:i',
],
'pagination' => [
'enabled' => false,
'default_per_page' => 15,
'page_name' => 'page',
'per_page_query_name' => 'per_page',
'per_page_options' => [10, 25, 50],
'show_label' => false,
// Available: default, centered-page-numbers
'template' => 'default',
],
use App\Models\User;
use Mimisk\Pinakas\Actions\ActionGroup;
use Mimisk\Pinakas\Actions\DeleteAction;
use Mimisk\Pinakas\Actions\EditAction;
use Mimisk\Pinakas\Actions\ViewAction;
use Mimisk\Pinakas\Bulk\BulkAction;
use Mimisk\Pinakas\Columns\BadgeColumn;
use Mimisk\Pinakas\Columns\BooleanColumn;
use Mimisk\Pinakas\Columns\Column;
use Mimisk\Pinakas\Columns\DateColumn;
use Mimisk\Pinakas\Columns\TimeColumn;
use Mimisk\Pinakas\Pinakas;
$table = (new Pinakas())
->model(User::class)
->columns([
Column::make('Id', 'id')->searchable()->sortable(),
Column::make('Name', 'name')->searchable()->sortable(),
Column::make('Email', 'email')->searchable()->sortable(),
DateColumn::make('Created At', 'created_at')->format('d/m/Y H:i')->sortable(),
])
->actions([
ActionGroup::make([
ViewAction::make(),
EditAction::make(),
DeleteAction::make(),
]),
])
->bulkActions([
BulkAction::make('Delete Selected')
->icon('trash')
->url('/users/bulk-delete')
->method('DELETE')
->confirm('Delete selected users?'),
])
->paginate(10)
->searchable()
->sortable()
->uiAccentColor('amber-600')
->bordered(true)
->tableRounded('rounded-xs')
->paginationDropdownRounded('rounded-none')
->actionButtonRounded('rounded-none')
->actionDropdownRounded('rounded-none')
->perPageOptions([10, 25, 50]);
return view('welcome', [
'table' => $table,
]);
->columns([
Column::make('Id', 'id'),
Column::make('Name', 'name'),
Column::make('Email', 'email'),
Column::make('Created At', 'created_at'),
])
->columns([
Column::make('Id', 'id')->align('center'), // header + cells
Column::make('Name', 'name')->align('left'),
Column::make('Amount', 'amount')->align('right'),
])
->columns([
Column::make('Amount', 'amount')
->cellAlign('right') // cells only
->headerAlign('center') // header
])
->columns([
Column::make(attribute: 'created_at'), // "Created At"
DateColumn::make(attribute: 'email_verified_at'), // "Email Verified At"
])
use Mimisk\Pinakas\Columns\DateColumn;
->columns([
DateColumn::make('Created At', 'created_at')
->format('d/m/Y H:i')
->timezone('Europe/Athens')
->emptyText('-'),
])
use Mimisk\Pinakas\Columns\TimeColumn;
->columns([
TimeColumn::make('Login Time', 'last_login_at')
->format('H:i')
->timezone('Europe/Athens')
->emptyText('-'),
])
use Mimisk\Pinakas\Columns\BadgeColumn;
->columns([
BadgeColumn::make('Status', 'status')
->color(fn ($value) => filled($value) ? 'green' : 'gray'),
])
use Mimisk\Pinakas\Columns\BooleanColumn;
->columns([
BooleanColumn::make('Verified', 'is_verified')
->labels('Verified', 'Not verified')
->colors('green', 'gray'),
])
->actions([
ViewAction::make(),
EditAction::make(),
DeleteAction::make(),
])
->actions([
ActionGroup::make([
ViewAction::make(),
EditAction::make(),
DeleteAction::make(),
]),
])
Action::make('Open')
->route('user.show', fn ($row) => ['user' => $row->id])
Action::make('Delete')
->url('/users/1')
->method('DELETE')
->confirm('Delete this user?')
->paginate(10)
->paginate(10, 'users_page')
->paginate(10, 'users_page', 'Per Page')
->paginationTemplate('centered-page-numbers')
->paginationTemplate('my-custom.pagination')
->searchable()
->searchable('q')
->searchLabel('Find User')
->searchPlaceholder('Type name or email')
->searchRounded('rounded-none')
->searchDebounceMs(300)
->searchMinChars(3)
->searchIcon('magnifying-glass') // or 'search', null, or custom view name
->showSearchLabel(false)
->searchIcon(null)
->columns([
Column::make('Name', 'name')->searchable(),
Column::make('Email', 'email')->searchable(),
Column::make('Created At', 'created_at'), // not searchable
])
->sortable()
->sortIconPosition('right') // or 'left'
->sortable('sort_by', 'sort_direction')
->columns([
Column::make('Id', 'id')->sortable(),
Column::make('Name', 'name')->sortable(),
Column::make('Email', 'email')->sortable(),
])
use Mimisk\Pinakas\Bulk\BulkAction;
->bulkActions([
BulkAction::make('Delete Selected')
->icon('trash')
->url('/users/bulk-delete')
->method('DELETE')
->confirm('Delete selected users?'),
])
->bulkSelectedInputName('ids')
public function bulkDelete(Request $request)
{
$ids = $request->input('selected_ids', []);
User::query()->whereIn('id', $ids)->delete();
return back();
}
->uiAccentColor('amber-600')
->uiAccentColor('#d97706')
->bordered(true) // show border
->bordered(false) // hide border
->tableRounded('rounded-xs')
->tableRounded('rounded-lg')
->tableRounded('rounded-none')
->striped() // ON
->striped(false) // OFF
->hoverable() // ON
->hoverable(false) // OFF
->paginationDropdownRounded('rounded-none')
->actionButtonRounded('rounded-none')
->actionDropdownRounded('rounded-none')
->perPageOptions([10, 25, 50])
->perPageOptions([10, 25, 50], 'users_per_page')
->emptyState('No users yet', 'Create your first user to get started.')
->searchEmptyState('No users found', 'Try another term or clear search.')
namespace App\Http\Controllers;
use App\Models\User;
use Mimisk\Pinakas\Actions\ActionGroup;
use Mimisk\Pinakas\Actions\DeleteAction;
use Mimisk\Pinakas\Actions\EditAction;
use Mimisk\Pinakas\Actions\ViewAction;
use Mimisk\Pinakas\Bulk\BulkAction;
use Mimisk\Pinakas\Columns\Column;
use Mimisk\Pinakas\Pinakas;
class TestController extends Controller
{
public function showTable()
{
$table = (new Pinakas())
->model(User::class)
->columns([
Column::make('Id', 'id')->searchable()->sortable(),
Column::make('Name', 'name')->searchable()->sortable(),
Column::make('Email', 'email')->searchable()->sortable(),
Column::make('Created At', 'created_at'),
])
->actions([
ActionGroup::make([
ViewAction::make(),
EditAction::make(),
DeleteAction::make(),
]),
])
->bulkActions([
BulkAction::make('Delete Selected')
->icon('trash')
->url('/users/bulk-delete')
->method('DELETE')
->confirm('Delete selected users?'),
])
->paginate(10)
->searchable()
->sortable()
->perPageOptions([10, 25, 50]);
return view('welcome', [
'table' => $table,
]);
}
}
bash
php artisan vendor:publish --tag=pinakas-assets
bash
php artisan vendor:publish --tag=pinakas-config
bash
composer analyse