PATH:
home
/
rwabteecom
/
project_11
/
app
/
Datatables
/
Editing: NotificationDatatables.php
<?php namespace App\Datatables; use App\Interfaces\DatatableInterface; use Auth; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use LaravelLocalization; use Yajra\DataTables\DataTables; class NotificationDatatables implements DatatableInterface { public static function columns(): array { return [ 'title' => ['data->title->' . LaravelLocalization::getCurrentLocale()], "description" => ['data->description->' . LaravelLocalization::getCurrentLocale()], "date", "is_read", ]; } public function datatables(Request $request): JsonResponse { return Datatables::of($this->query($request)) ->addColumn("title", function ($notification) { return $notification->data["title"][app()->getLocale()]; }) ->addColumn("description", function ($notification) { if ($notification->data["url"]) { return "<a href='" . route('admin.notifications.show', $notification->id) . "'>" . $notification->data["description"][app()->getLocale()] . "</a>"; } else { return $notification->data["description"][app()->getLocale()]; } }) ->addColumn("date", function ($notification) { return $notification->created_at->diffForHumans(); }) ->addColumn("is_read", function ($notification) { return $notification->read_at ? "✅" : "❌"; }) ->addColumn("actions", function ($notification) { return (new DataTableActions()) ->delete(route('admin.notifications.destroy', $notification->id)) ->make(); }) ->rawColumns(["actions", "is_read", "description"]) ->toJson(true); } public function query(Request $request) { return Auth::user()->notifications(); } }
SAVE
CANCEL