From d0c8fe5b369174286d0a8d4a8e6a87af2c08620d Mon Sep 17 00:00:00 2001 From: Arjay Angeles Date: Sat, 14 Sep 2024 16:30:38 +0800 Subject: [PATCH] fix: exporting of related models --- src/Services/DataTable.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Services/DataTable.php b/src/Services/DataTable.php index 45acd8e..786385b 100644 --- a/src/Services/DataTable.php +++ b/src/Services/DataTable.php @@ -12,6 +12,7 @@ use Illuminate\Http\JsonResponse; use Illuminate\Http\Resources\Json\AnonymousResourceCollection; use Illuminate\Http\Response; +use Illuminate\Support\Arr; use Illuminate\Support\Collection; use Illuminate\Support\LazyCollection; use Maatwebsite\Excel\ExcelServiceProvider; @@ -679,11 +680,18 @@ public function fastExcelCallback(): Closure ->reject(fn (Column $column) => $column->exportable === false) ->each(function (Column $column) use (&$mapped, $row) { $callback = $column->exportRender ?? null; + $key = $column->data; + + if (is_array($key)) { + $data = Arr::get($row, $key['_']); + } else { + $data = Arr::get($row, $key); + } if (is_callable($callback)) { - $mapped[$column->title] = $callback($row, $row[$column->data]); + $mapped[$column->title] = $callback($row, $data); } else { - $mapped[$column->title] = $row[$column->data]; + $mapped[$column->title] = $data; } });