Skip to content

Latest commit

 

History

History
73 lines (54 loc) · 1.61 KB

html-builder.md

File metadata and controls

73 lines (54 loc) · 1.61 KB

Html Builder

DataTables has a built-in html builder that you can use to automatically generate your table mark-up and javascripts declarations.

Html Builder via Dependency Injection

You can use the Builder class by using Dependency Injection.

use Yajra\DataTables\Html\Builder;

Route::get('users', function(Builder $builder) {
});

Html Builder via IoC

Route::get('users', function() {
	$builder = app('datatables.html');
});

Html Builder from DataTables instance

use Yajra\DataTables\DataTables;

Route::get('users', function(DataTables $dataTable) {
	$builder = $dataTable->getHtmlBuilder();
});

Html Builder Example

use DataTables;
use Yajra\DataTables\Html\Builder;

Route::get('users', function(Builder $builder) {
	if (request()->ajax()) {
        return DataTables::of(User::query())->toJson();
    }

	$html = $builder->columns([
	        	['data' => 'id', 'name' => 'id', 'title' => 'Id'],
		        ['data' => 'name', 'name' => 'name', 'title' => 'Name'],
		        ['data' => 'email', 'name' => 'email', 'title' => 'Email'],
		        ['data' => 'created_at', 'name' => 'created_at', 'title' => 'Created At'],
		        ['data' => 'updated_at', 'name' => 'updated_at', 'title' => 'Updated At'],
	        ]);

	return view('users.index', compact('html'));
});

On your resources/views/users/index.blade.php.

@extends('app')

@section('contents')
    {!! $html->table() !!}
@endsection

@push('scripts')
    {!! $html->scripts() !!}
@endpush