filter(function ($query) { if (request()->has('search')) { $search = request()->get('search'); $query->where('kode', 'like', "%" . $search['value'] . "%"); } }) ->addColumn('kode_directorat',function($model){ return $model->directorat->kode; }) ->addColumn('name_directorat',function($model){ return $model->directorat->name; }) ->addColumn('kode_sub_directorat',function($model){ return $model->sub_directorat->kode; }) ->addColumn('name_sub_directorat',function($model){ return $model->sub_directorat->name; }) ->addColumn('kode_pekerjaan',function($model){ return $model->job->kode; }) ->addColumn('name_pekerjaan',function($model){ return $model->job->name; }) ->addColumn('kode_sub_pekerjaan',function($model){ return $model->sub_job->kode; }) ->addColumn('name_sub_pekerjaan',function($model){ return $model->sub_job->name; }) ->addColumn('kode_sub_sub_pekerjaan',function($model){ return $model->sub_sub_job->kode; }) ->addColumn('name_sub_sub_pekerjaan',function($model){ return $model->sub_sub_job->name; }) ->addIndexColumn() ->addColumn('action', 'pages.app.document._action') ->setRowId('id'); } /** * Get the query source of dataTable. */ public function query(Document $model): QueryBuilder { return $model->newQuery(); } /** * Optional method if you want to use the html builder. */ public function html(): HtmlBuilder { return $this->builder() ->setTableId('document-table') ->columns($this->getColumns()) ->minifiedAjax() ->stateSave(false) ->responsive() ->autoWidth(true) ->orderBy(1) ->parameters([ 'scrollX' => true, 'drawCallback' => 'function() { KTMenu.createInstances(); }', ]) ->addTableClass('align-middle table-row-dashed fs-6 gy-5'); } /** * Get the dataTable columns definition. */ public function getColumns(): array { return [ Column::make('DT_RowIndex')->title('No')->orderable(false)->searchable(false), Column::make('kode'), Column::make('kode_directorat')->title('Kode Direktorat'), Column::make('name_directorat')->title('Nama Direktorat'), Column::make('kode_sub_directorat')->title('Kode Sub Direktorat'), Column::make('name_sub_directorat')->title('Nama Sub Direktorat'), Column::make('kode_pekerjaan')->title('Kode Pekerjaan'), Column::make('name_pekerjaan')->title('Nama Pekerjaan'), Column::make('kode_sub_pekerjaan')->title('Kode Sub Pekerjaan'), Column::make('name_sub_pekerjaan')->title('Nama Sub Pekerjaan'), Column::make('kode_sub_sub_pekerjaan')->title('Kode Sub Sub Pekerjaan'), Column::make('name_sub_sub_pekerjaan')->title('Nama Sub Sub Pekerjaan'), Column::make('status'), Column::computed('action') ->exportable(false) ->printable(false) ->width(60) ->addClass('text-center'), ]; } /** * Get the filename for export. */ protected function filename(): string { return 'Document_' . date('YmdHis'); } }