lloricode/laravel-html-table

Html table generator for laravel
75,909 15
Install
composer require lloricode/laravel-html-table
Latest Version:v2.1.2
PHP:^8.2
Laravel:11 · 12
Older releases:10
License:MIT
Last Updated:Jun 22, 2026
Links: GitHub  ·  Packagist
Maintainer: lloricode

Laravel HTML Table

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads codecov

Generate Html Table with data from array/object.

Installation

You can install the package via composer:

composer require lloricode/laravel-html-table

Usage

Sample in view

$headers = ['col1', 'col2'];

$data = [
    [
        'Lloric', 'Garcia',
    ],
    [
        'Foo', 'Bar',
    ],
    [
        'Foo1', 'bar11',
    ],
    [
        'tst', 'tesss',
    ],
];

$attributes = 'class="table"';
// Or
$attributes = ['myclass' => 'test_val'];

{!! Table::generate($headers, $data) !!}

{!! Table::generate($headers, $data, $attributes) !!}

// Model way

{!! 
    Table::generateModel(
        ['Id', 'Name', 'Email'],  // Column for table
        'App\User' // Model
        ,['id', 'name', 'email'], // Fields from model
        0, // Pagination Limit, if 0 all will show
        'border="1"' // Attributes sample js/css
    ) 
!!}

{{ Table::links() }} // Generate this when limit is not 0

// then you can add a links

{!!
    Table::optionLinks('my.route.name')
        ->modelResult(function($query){  // you can add filter if you are using model generate
            $query->where('user_id', auth()->user()->id);
            return $query;
        })
        ->generateModel(
            ['Id', 'Name', 'Email'],  // Column for table
            'App\User' // Model
            ,['id', 'name', 'email'], // Fields from model
            5, // Pagination Limit, if 0 all will show
            'border="1"' // Attributes sample js/css
        ) 
!!}

// you can specify more args
// 1st route name, 2nd header label, and 3rd is the every row label
{!! 
    Table::optionLinks('my.route.name', 'my option', 'view')
        ->generateModel(
            ['Id', 'Name', 'Email'],  // Column for table
            'App\User' // Model
            ,['id', 'name', 'email'], // Fields from model
            5, // Pagination Limit, if 0 all will show
            'border="1"' // Attributes sample js/css
        ) 
!!}

This is all default values html tags

$attributes = [
    // Main Table
    'table' => '<table>',
    'table_end' => '</table>',

    // Head
    'head' => '<thead>',
    'head_end' => '</thead>',

    'head_row' => '<tr>',
    'head_row_end' => '</tr>',
    'head_cell' => '<th>',
    'head_cell_end' => '</th>',

    // Data body
    'body' => '<tbody>',
    'body_end' => '</tbody>',

    'body_row' => '<tr>',
    'body_row_end' => '</tr>',
    'body_cell' => '<td>',
    'body_cell_end' => '</td>',

    // Alternative
    'alt_body_row' => '<tr>',
    'alt_body_row_end' => '</tr>',
    'alt_body_cell' => '<td>',
    'alt_body_cell_end' => '</td>',
];

{!! Table::generate($headers, $data, $attributes) !!}

Sample Output

<table myclass="test_val"><thead><tr><th>col1</th><th>col2</th></tr></thead><tbody><tr><td>Lloric</td><td>Garcia</td></tr><tr><td>Foo</td><td>Bar</td></tr><tr><td>Foo1</td><td>bar11</td></tr><tr><td>tst</td><td>tesss</td></tr></tbody></table>

Adding attributes in cell data

$header = ['Date', 'Description', 'Amount'];
$datas = [
    [
        ['data' => '1', 'scope' => 'row'],
        'Mark',
        'Otto',
    ],
    [
        ['data' => '2', 'scope' => 'row'],
        'foo',
        'varr',
    ],
];

{!! Table::generate($header, $datas, ['class'=>'table']) !!}

<table class="table">
   <thead>
       <tr>
           <th>Date</th>
           <th>Description</th>
           <th>Amount</th>
       </tr>
   </thead>
   <tbody>
       <tr>
           <td scope="row">1</td>
           <td>Mark</td>
           <td>Otto</td>
       </tr>
       <tr>
           <td scope="row">2</td>
           <td>foo</td>
           <td>varr</td>
       </tr>
   </tbody>
</table>

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

644,549,754 9,698
laravel/framework

The Laravel Framework.

593,882,149 34,959
laravel/tinker

Powerful REPL for the Laravel framework.

507,193,856 7,441
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

423,477,751 607
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

399,241,428 4,660

Version History

Version Released PHP Laravel License
v2.1.2 ^8.2 ^11.0|^12.0 MIT
v2.1.1 ^8.1 ^10.0|^11.0 MIT
v2.1.0 ^8.1 ^10.0.0 MIT
v2.0.0 ^8.1 ^10.0.0 MIT
v1.3.4 >=7.0 MIT