<?php namespace App\DataTables; use App\Models\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 UserDataTable 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', 'user.action'); } /** * Get query source of dataTable. * * @param \App\Models\User $model * @return \Illuminate\Database\Eloquent\Builder */ public function query(User $model) { return $model->newQuery()->select('user.*'); } /** * Optional method if you want to use html builder. * * @return \Yajra\DataTables\Html\Builder */ public function html() { return $this->builder() ->setTableId('user-data-table') ->columns($this->getColumns()) ->minifiedAjax(route('dashboard.user')) ->dom('lfrtip'); } /** * Get columns. * * @return array */ protected function getColumns() { return [ Column::make('id'), Column::make('name'), Column::computed('action') ->exportable(false) ->printable(false) ->width(80) ->addClass('text-center') ]; } /** * Get filename for export. * * @return string */ protected function filename() { return 'User_' . date('YmdHis'); } }