addIndexColumn() ->addColumn('action', function (Restaurant $model) { $html = ''; // Upgrade button $html .= ''; // Upgrade Modal $html .= ' '; // Edit button $html .= ' '; // Delete button $html .= ''; // Delete Modal $html .= ' '; return $html; }) ->addColumn('subscription', function (Restaurant $model) { if ($model->subscription) { $start = Carbon::parse($model->subscription->start_date)->format('d M Y'); $end = Carbon::parse($model->subscription->end_date)->format('d M Y'); return ''.$model->subscription->package?->name.'
Start: '.$start.'
End: '.$end.''; } return 'No subscription'; }) ->rawColumns(['subscription', 'action']); } public function query(Restaurant $model): QueryBuilder { return $this->service->get(['is_query' => true]); } public function html(): HtmlBuilder { return $this->builder() ->setTableId('Restaurant-table') ->columns($this->getColumns()) ->minifiedAjax() ->orderBy(1) ->selectStyleSingle(); } public function getColumns(): array { return [ Column::make('DT_RowIndex')->title('Sl no')->searchable(false)->orderable(false), Column::make('name')->title('Owner Name'), Column::make('name')->title('Restaurant Name'), Column::make('phone')->title('Phone'), Column::make('domain')->title('Domain'), Column::make('address')->title('Address'), Column::make('restaurant_type')->title('Business Type'), Column::make('subscription')->title('Subscription')->searchable(false)->orderable(false), Column::make('action')->title('Action')->searchable(false)->orderable(false), ]; } protected function filename(): string { return 'Restaurant-'.date('YmdHis'); } }