PATH:
home
/
rwabteecom
/
project_11
/
app
/
Datatables
/
Editing: UserDatatables.php
<?php namespace App\Datatables; use App\Interfaces\DatatableInterface; use App\Models\User; use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Yajra\DataTables\Facades\DataTables; class UserDatatables implements DatatableInterface { public static function columns(): array { return [ 'name', "email", "phone", "currentPlan", "status", ]; } public function datatables(Request $request): JsonResponse { return Datatables::of($this->query($request)) ->addColumn("currentPlan", function (User $user) { return $user->currentPlan?->title ?? __("Not plan selected"); }) ->addColumn("status", function (User $user) { return $user->status->statusMessage(); }) ->addColumn("actions", function (User $user) { return (new DataTableActions()) ->edit(route('admin.users.edit', $user->id), !$user->trashed()) ->show(route('admin.users.show', $user->id), !$user->trashed()) ->download(route('admin.users.download.theme', $user->domain)) ->delete(route('admin.users.destroy', $user->id), !$user->trashed()) ->restore(route('admin.users.restore', $user->id), $user->trashed()) ->make(); }) ->rawColumns(["actions", "status"]) ->toJson(true); } public function query(Request $request): Builder { return User::query() ->search() ->latest("users.created_at") ->select("users.*"); } }
SAVE
CANCEL