From ab8b3884156036014d22a8ff60a9675d26439d70 Mon Sep 17 00:00:00 2001 From: Tarvo Reinpalu Date: Thu, 23 Apr 2020 18:08:36 +0300 Subject: [PATCH] Fix global search not working --- src/Traits/HasSortableRows.php | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/Traits/HasSortableRows.php b/src/Traits/HasSortableRows.php index 710169c..04a9263 100644 --- a/src/Traits/HasSortableRows.php +++ b/src/Traits/HasSortableRows.php @@ -10,7 +10,12 @@ public static function getSortability(NovaRequest $request) { $model = null; - $resource = isset($request->resourceId) ? $request->findResourceOrFail() : $request->newResource(); + try { + $resource = isset($request->resourceId) ? $request->findResourceOrFail() : $request->newResource(); + } catch (\Exception $e) { + return null; + } + $model = $resource->resource ?? null; $sortable = $model->sortable ?? false; @@ -58,15 +63,17 @@ public static function indexQuery(NovaRequest $request, $query) { $sortability = static::getSortability($request); - $shouldSort = true; - if (empty($sortability->sortable)) $shouldSort = false; - if ($sortability->sortOnBelongsTo && empty($request->viaResource())) $shouldSort = false; - if ($sortability->sortOnHasMany && empty($request->viaResource())) $shouldSort = false; + if (!empty($sortability)) { + $shouldSort = true; + if (empty($sortability->sortable)) $shouldSort = false; + if ($sortability->sortOnBelongsTo && empty($request->viaResource())) $shouldSort = false; + if ($sortability->sortOnHasMany && empty($request->viaResource())) $shouldSort = false; - if (empty($request->get('orderBy')) && $shouldSort) { - $query->getQuery()->orders = []; - $orderColumn = !empty($sortability->sortable['order_column_name']) ? $sortability->sortable['order_column_name'] : 'sort_order'; - return $query->orderBy($orderColumn); + if (empty($request->get('orderBy')) && $shouldSort) { + $query->getQuery()->orders = []; + $orderColumn = !empty($sortability->sortable['order_column_name']) ? $sortability->sortable['order_column_name'] : 'sort_order'; + return $query->orderBy($orderColumn); + } } return $query;