Usage
Create controller and DataTable class
{{ util()->highlight('
php artisan make:controller UsersController
php artisan datatables:make Users
', 'bash') }}
The command above will create a DataTable controller file in app/DataTables/UsersDataTable.php
.
{{ util()->highlight('namespace App\DataTables;
use App\User;
use Yajra\DataTables\Html\Button;
use Yajra\DataTables\Html\Column;
use Yajra\DataTables\Html\Editor\Editor;
use Yajra\DataTables\Html\Editor\Fields;
use Yajra\DataTables\Services\DataTable;
class UsersDataTable extends DataTable
{
/**
* Build DataTable class.
*
* @param mixed $query Results from query() method.
* @return \Yajra\DataTables\DataTableAbstract
*/
public function dataTable($query)
{
return datatables()
->eloquent($query)
->addColumn(\'action\', \'users.action\');
}
/**
* Get query source of dataTable.
*
* @param \App\User $model
* @return \Illuminate\Database\Eloquent\Builder
*/
public function query(User $model)
{
return $model->newQuery();
}
/**
* Optional method if you want to use html builder.
*
* @return \Yajra\DataTables\Html\Builder
*/
public function html()
{
return $this->builder()
->setTableId(\'users-table\')
->columns($this->getColumns())
->minifiedAjax()
->dom(\'Bfrtip\')
->orderBy(1)
->buttons(
Button::make(\'create\'),
Button::make(\'export\'),
Button::make(\'print\'),
Button::make(\'reset\'),
Button::make(\'reload\')
);
}
/**
* Get columns.
*
* @return array
*/
protected function getColumns()
{
return [
Column::computed(\'action\')
->exportable(false)
->printable(false)
->width(60)
->addClass(\'text-center\'),
Column::make(\'id\'),
Column::make(\'name\'),
Column::make(\'email\'),
Column::make(\'created_at\'),
Column::make(\'updated_at\'),
];
}
/**
* Get filename for export.
*
* @return string
*/
protected function filename()
{
return \'Users_\' . date(\'YmdHis\');
}
}
', 'php') }}
Create a new HTTP controller file in app/Http/Controllers/UsersController.php
.
{{ util()->highlight('namespace App\Http\Controllers;
use App\DataTables\UsersDataTable;
class UsersController extends Controller
{
public function index(UsersDataTable $dataTable)
{
return $dataTable->render(\'users.index\');
}
}', 'php') }}