App\Repositories\Backend\Access\User\UserRepository::getForDataTable PHP Method

getForDataTable() public method

public getForDataTable ( integer $status = 1, boolean $trashed = false ) : mixed
$status integer
$trashed boolean
return mixed
    public function getForDataTable($status = 1, $trashed = false)
    {
        /**
         * Note: You must return deleted_at or the User getActionButtonsAttribute won't
         * be able to differentiate what buttons to show for each row.
         */
        $dataTableQuery = $this->query()->with('roles')->select([config('access.users_table') . '.id', config('access.users_table') . '.name', config('access.users_table') . '.email', config('access.users_table') . '.status', config('access.users_table') . '.confirmed', config('access.users_table') . '.created_at', config('access.users_table') . '.updated_at', config('access.users_table') . '.deleted_at']);
        if ($trashed == "true") {
            return $dataTableQuery->onlyTrashed();
        }
        // active() is a scope on the UserScope trait
        return $dataTableQuery->active($status);
    }

Usage Example

 /**
  * @param ManageUserRequest $request
  * @return mixed
  */
 public function __invoke(ManageUserRequest $request)
 {
     return Datatables::of($this->users->getForDataTable($request->get('status'), $request->get('trashed')))->editColumn('confirmed', function ($user) {
         return $user->confirmed_label;
     })->addColumn('roles', function ($user) {
         return $user->roles->count() ? implode("<br/>", $user->roles->pluck('name')->toArray()) : trans('labels.general.none');
     })->addColumn('actions', function ($user) {
         return $user->action_buttons;
     })->withTrashed()->make(true);
 }