PATH:
home
/
rwabteecom
/
project_11
/
app
/
Datatables
/
Editing: PlanDatatables.php
<?php namespace App\Datatables; use App\Helpers\Switcher; use App\Interfaces\DatatableInterface; use App\Models\Plan; use Illuminate\Database\Eloquent\Builder; use Illuminate\Http\Request; use LaravelLocalization; use Yajra\DataTables\Facades\DataTables; class PlanDatatables implements DatatableInterface { public static function columns(): array { return [ "title" => ["title->" . LaravelLocalization::getCurrentLocale()], "price", "duration_in_days", "features", "status", "created_at", ]; } public function datatables(Request $request) { return Datatables::of($this->query($request)) ->addColumn("title", function (Plan $plan) { return $plan->title; }) ->addColumn("price", function (Plan $plan) { return number_format($plan->price, 2); }) ->addColumn("features", function (Plan $plan) { return $plan->features()->count(); }) ->addColumn("created_at", function (Plan $plan) { return $plan->created_at->format("Y-m-d"); }) ->addColumn("status", function (Plan $plan) { return (new Switcher()) ->model($plan) ->modelId($plan->id) ->checkStatus($plan->status) ->make(); }) ->addColumn("actions", function (Plan $plan) { return (new DataTableActions()) ->edit(route("admin.plan.edit", $plan->id)) ->delete(route("admin.plan.destroy", $plan->id), !$plan->is_free_plan) ->make(); }) ->rawColumns(["actions", "status"]) ->make(true); } public function query(Request $request): Builder { return Plan::query()->latest()->select("*"); } }
SAVE
CANCEL