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