vanetten / dynamictable
A simple PHP class to generate dynamic HTML tables from a multidimensional associative array.
v1.0.5
2024-08-31 11:38 UTC
README
A simple PHP class to generate dynamic HTML tables from a multidimensional associative array. This class provides various methods to manipulate table headers, add custom columns, and style the table with CSS classes.
Installation
composer require vanetten/dynamictable
Basic Usage
<?php require_once 'vendor/autoload.php'; $data = [ ['id' => 0, 'name' => 'Henry', 'age' => 42, 'city' => 'Boulder'], ['id' => 1, 'name' => 'Ned', 'age' => 40, 'city' => 'Los Angeles'], ['id' => 2, 'name' => 'Delilah', 'age' => 43, 'city' => 'Chicago'], ]; $dt = new \VanEtten\DynamicTable($data); $html = $dt->render(); echo $html; ?>
output
id | name | age | city |
---|---|---|---|
0 | Henry | 42 | Boulder |
1 | Ned | 40 | Los Angeles |
2 | Delilah | 43 | Chicago |
Basic Usage in Laravel
Open the view and convert the Eloquent\Collection to an Array; see example below.
$dt = new \VanEtten\DynamicTable($user->posts->toArray()); echo $dt->render();
Advanced Example
You can chain multiple methods to manipulate the table headers and add custom columns:
# In the addHeader method, use {{ }} to reference any existing key. $dt->renameHeaders(['name' => 'Full Name']) ->addHeader(['Action' => '<a href="delete.php?id={{id}}">Delete</a>]') ->headerToUpperCase() ->excludeHeaders('id') ->addTableClass('table-class') ->addHeaderClass('header-class') ->addBodyClass('body-class');
output
FULL NAME | AGE | CITY | ACTION |
---|---|---|---|
Henry | 42 | Boulder | Delete |
Ned | 40 | Los Angeles | Delete |
Delilah | 43 | Chicago | Delete |