ProductsDataTable.php
unknown
php
a year ago
2.6 kB
6
Indexable
<?php namespace App\DataTables; use App\Models\Product; use Illuminate\Database\Eloquent\Builder as QueryBuilder; use Yajra\DataTables\EloquentDataTable; use Yajra\DataTables\Html\Builder as HtmlBuilder; 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\Html\SearchPane; use Yajra\DataTables\Services\DataTable; class ProductsDataTable extends DataTable { /** * Build the DataTable class. * * @param QueryBuilder $query Results from query() method. */ public function dataTable(QueryBuilder $query): EloquentDataTable { return (new EloquentDataTable($query)) ->addColumn('action', function ($row) { $btn = '<a href="">testing</a>'; return $btn; }) ->setRowId('id'); } /** * Get the query source of dataTable. */ public function query(Product $model): QueryBuilder { return $model->newQuery(); } /** * Optional method if you want to use the html builder. */ public function html(): HtmlBuilder { return $this->builder() ->setTableId('products-table') ->columns($this->getColumns()) ->minifiedAjax() // ->dom('Bfrtip') ->orderBy(1) ->selectStyleSingle() ->buttons([ Button::make('excel'), Button::make('csv'), // Button::make('pdf'), Button::make('print'), Button::make('reset'), Button::make('reload') ]); } /** * Get the dataTable columns definition. */ public function getColumns(): array { return [ Column::make('title'), Column::make('unit') ->width(20), Column::make('price') ->width(50), Column::make('status') ->width(80), Column::computed('action') ->exportable(false) ->printable(false) ->width(60) ->addClass('text-center'), ]; } /** * Get the filename for export. */ protected function filename(): string { return 'Products_' . date('YmdHis'); } }
Editor is loading...
Leave a Comment