HTML Builder Table
The table() method generates the HTML table markup for your DataTable.
Basic Usage
Simple Table
use Yajra\DataTables\Html\Builder; echo $html->table();
Table with Custom Attributes
use Yajra\DataTables\Html\Builder; echo $html->table([ 'class' => 'table table-striped table-bordered', 'id' => 'users-table',]);
Table with Footer
use Yajra\DataTables\Html\Builder; echo $html->table(['class' => 'table'], true);
Table with Search Headers
use Yajra\DataTables\Html\Builder; echo $html->table([], false, true);
Method Signature
public function table(array $attributes = [], bool $drawFooter = false, bool $drawSearch = false): HtmlString
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
$attributes |
array | [] |
HTML table attributes |
$drawFooter |
bool | false |
Whether to draw <tfoot> |
$drawSearch |
bool | false |
Whether to draw search filter row |
Complete Example
use Yajra\DataTables\Facades\DataTables;use Yajra\DataTables\Html\Builder;use Yajra\DataTables\Html\Column;use App\Models\User; Route::get('users', function(Builder $builder) { if (request()->ajax()) { return DataTables::of(User::query())->toJson(); } $html = $builder->columns([ Column::make('name'), Column::make('email'), Column::make('id'), ]); return view('users.index', compact('html'));});
In your Blade template:
@extends('layouts.app') @section('content') {{ $html->table(['class' => 'table table-bordered']) }}@endsection @push('scripts') {{ $html->scripts() }}@endpush
See Also
- HTML Builder - Main HTML Builder documentation
- HTML Builder Column - Column configuration