eloquent($query) ->addColumn('role', function ($data) { return view('user::users.partials.roles', [ 'roles' => $data->getRoleNames() ]); }) ->addColumn('action', function ($data) { return view('user::users.partials.actions', compact('data')); }) ->addColumn('status', function ($data) { if ($data->is_active == 1) { $html = 'Active'; } else { $html = 'Deactivated'; } return $html; }) ->addColumn('image', function ($data) { $url = $data->getFirstMediaUrl('avatars'); return ''; }) ->rawColumns(['image', 'status']); } public function query(User $model) { return $model->newQuery() ->with(['roles' => function ($query) { $query->select('name')->get(); }]) ->where('id', '!=', auth()->id()); } public function html() { return $this->builder() ->setTableId('users-table') ->columns($this->getColumns()) ->minifiedAjax() ->dom("<'row'<'col-md-3'l><'col-md-5 mb-2'B><'col-md-4'f>> . 'tr' . <'row'<'col-md-5'i><'col-md-7 mt-2'p>>") ->orderBy(6) ->buttons( Button::make('excel') ->text(' Excel'), Button::make('print') ->text(' Print'), Button::make('reset') ->text(' Reset'), Button::make('reload') ->text(' Reload') ); } protected function getColumns() { return [ Column::computed('image') ->className('text-center align-middle'), Column::make('name') ->className('text-center align-middle'), Column::make('email') ->className('text-center align-middle'), Column::computed('role') ->className('text-center align-middle'), Column::computed('status') ->className('text-center align-middle'), Column::computed('action') ->exportable(false) ->printable(false) ->className('text-center align-middle'), Column::make('created_at') ->visible(false) ]; } protected function filename(): string { return 'Users_' . date('YmdHis'); } }