From f8ba58fb93c96c4eb374fe4749ebe4be67877382 Mon Sep 17 00:00:00 2001 From: Nowocyn Date: Mon, 23 Oct 2023 15:47:07 +0200 Subject: [PATCH] Fix missing grammar parameter in getValue() for laravel 10. (#591) * Update LivewireDatatables to support DB::raw with laravel version 10. * Update style * Switch to correct function. * Switch to correct function. * Fix style. * Update x-datatables.x-circle to x-icon * Update x-datatables.x-circle to x-icon --- .../livewire/datatables/filters/datetime.blade.php | 4 ++-- src/Http/Livewire/LivewireDatatable.php | 10 +++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/resources/views/livewire/datatables/filters/datetime.blade.php b/resources/views/livewire/datatables/filters/datetime.blade.php index f7836120..fbe7a116 100644 --- a/resources/views/livewire/datatables/filters/datetime.blade.php +++ b/resources/views/livewire/datatables/filters/datetime.blade.php @@ -6,7 +6,7 @@ />
@@ -17,7 +17,7 @@ />
diff --git a/src/Http/Livewire/LivewireDatatable.php b/src/Http/Livewire/LivewireDatatable.php index acffcef2..5e8f2e19 100644 --- a/src/Http/Livewire/LivewireDatatable.php +++ b/src/Http/Livewire/LivewireDatatable.php @@ -414,7 +414,11 @@ public function getSelectStatements($withAlias = false, $export = false) if ($column->select instanceof Expression) { $sep_string = config('database.default') === 'pgsql' ? '"' : '`'; - return new Expression($column->select->getValue() . ' AS ' . $sep_string . $column->name . $sep_string); + if (version_compare('10.0.0', app()->version()) == -1) { + return new Expression($column->select->getValue(DB::getQueryGrammar()) . ' AS ' . $sep_string . $column->name . $sep_string); + } else { + return new Expression($column->select->getValue() . ' AS ' . $sep_string . $column->name . $sep_string); + } } if (is_array($column->select)) { @@ -440,8 +444,8 @@ protected function resolveColumnName($column, $additional = null) return $this->query->getModel()->getTable() . '.' . ($column->base ?? Str::before($column->name, ':')); } - $relations = explode('.', Str::before(($additional ?: $column->name), ':')); - $aggregate = Str::after(($additional ?: $column->name), ':'); + $relations = explode('.', Str::before($additional ?: $column->name, ':')); + $aggregate = Str::after($additional ?: $column->name, ':'); if (! method_exists($this->query->getModel(), $relations[0])) { return $additional ?: $column->name;