From 14ce3385eec9e84fec5c7d0ffffece1b24cdb614 Mon Sep 17 00:00:00 2001 From: Benjamin Takats Date: Thu, 19 Jan 2023 13:58:52 +0100 Subject: [PATCH] orderByDesc orderBy --- app/Http/Livewire/Profile/Meetups.php | 3 +++ app/Http/Livewire/Tables/BookCaseTable.php | 5 +++-- app/Http/Livewire/Tables/CityTable.php | 7 ++++--- app/Http/Livewire/Tables/CourseTable.php | 4 +++- app/Http/Livewire/Tables/LecturerTable.php | 2 -- app/Http/Livewire/Tables/MeetupTable.php | 20 ++++++-------------- app/Http/Livewire/Tables/VenueTable.php | 5 +++-- app/Nova/Meetup.php | 5 +++++ app/Nova/MeetupEvent.php | 5 +++++ 9 files changed, 32 insertions(+), 24 deletions(-) diff --git a/app/Http/Livewire/Profile/Meetups.php b/app/Http/Livewire/Profile/Meetups.php index 037fae4d..4e7fa557 100644 --- a/app/Http/Livewire/Profile/Meetups.php +++ b/app/Http/Livewire/Profile/Meetups.php @@ -30,6 +30,9 @@ class Meetups extends Component } $this->meetups = Meetup::query() + ->with([ + 'city', + ]) ->where('name', 'ilike', '%'.$this->search.'%') ->orderBy('name') ->limit(10) diff --git a/app/Http/Livewire/Tables/BookCaseTable.php b/app/Http/Livewire/Tables/BookCaseTable.php index b44c02ee..36045df9 100644 --- a/app/Http/Livewire/Tables/BookCaseTable.php +++ b/app/Http/Livewire/Tables/BookCaseTable.php @@ -33,7 +33,6 @@ class BookCaseTable extends DataTableComponent { $this->setPrimaryKey('id') ->setAdditionalSelects(['id', 'homepage']) - ->setDefaultSort('orange_pills_count', 'desc') ->setThAttributes(function (Column $column) { return [ 'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400', @@ -125,7 +124,9 @@ class BookCaseTable extends DataTableComponent ]) ->withCount([ 'orangePills', - ]); + ]) + ->orderByDesc('orange_pills_count') + ->orderBy('book_cases.id'); } public function viewHistoryModal($modelId): void diff --git a/app/Http/Livewire/Tables/CityTable.php b/app/Http/Livewire/Tables/CityTable.php index a45f9660..fc98e64e 100644 --- a/app/Http/Livewire/Tables/CityTable.php +++ b/app/Http/Livewire/Tables/CityTable.php @@ -21,7 +21,6 @@ class CityTable extends DataTableComponent public function configure(): void { $this->setPrimaryKey('id') - ->setDefaultSort('course_events_count', 'desc') ->setAdditionalSelects(['id']) ->setThAttributes(function (Column $column) { return [ @@ -79,7 +78,9 @@ class CityTable extends DataTableComponent 'venues', 'courseEvents', ]) - ->whereHas('country', fn($query) => $query->where('code', $this->country)); + ->whereHas('country', fn($query) => $query->where('code', $this->country)) + ->orderByDesc('course_events_count') + ->orderBy('cities.id'); } public function proximitySearch($id) @@ -116,7 +117,7 @@ class CityTable extends DataTableComponent return to_route('bookCases.table.bookcases', [ '#table', 'country' => $this->country, - 'table' => [ + 'table' => [ 'filters' => [ 'byids' => $ids->implode(',') ], diff --git a/app/Http/Livewire/Tables/CourseTable.php b/app/Http/Livewire/Tables/CourseTable.php index 48ccc5d7..d5ca0eb0 100644 --- a/app/Http/Livewire/Tables/CourseTable.php +++ b/app/Http/Livewire/Tables/CourseTable.php @@ -95,7 +95,9 @@ class CourseTable extends DataTableComponent 'courseEvents', ]) ->whereHas('courseEvents.venue.city.country', - fn($query) => $query->where('countries.code', $this->country)); + fn($query) => $query->where('countries.code', $this->country)) + ->orderByDesc('course_events_count') + ->orderBy('courses.id'); } public function courseSearch($id) diff --git a/app/Http/Livewire/Tables/LecturerTable.php b/app/Http/Livewire/Tables/LecturerTable.php index 7a3765b3..ef5a14cb 100644 --- a/app/Http/Livewire/Tables/LecturerTable.php +++ b/app/Http/Livewire/Tables/LecturerTable.php @@ -18,7 +18,6 @@ class LecturerTable extends DataTableComponent { $this->setPrimaryKey('id') ->setAdditionalSelects(['id']) - ->setDefaultSort('courses_events_count', 'desc') ->setThAttributes(function (Column $column) { return [ 'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400', @@ -77,7 +76,6 @@ class LecturerTable extends DataTableComponent return Lecturer::query() ->withCount([ 'courses', - 'coursesEvents', 'libraryItems', ]); } diff --git a/app/Http/Livewire/Tables/MeetupTable.php b/app/Http/Livewire/Tables/MeetupTable.php index 47206ca9..233236ff 100644 --- a/app/Http/Livewire/Tables/MeetupTable.php +++ b/app/Http/Livewire/Tables/MeetupTable.php @@ -3,8 +3,6 @@ namespace App\Http\Livewire\Tables; use App\Models\Meetup; -use App\Models\MeetupEvent; -use App\Models\MeetupUser; use Illuminate\Database\Eloquent\Builder; use Rappasoft\LaravelLivewireTables\DataTableComponent; use Rappasoft\LaravelLivewireTables\Views\Column; @@ -18,7 +16,7 @@ class MeetupTable extends DataTableComponent public function configure(): void { $this->setPrimaryKey('id') - //->setDebugEnabled() + ->setDebugEnabled() ->setAdditionalSelects(['id', 'slug']) ->setThAttributes(function (Column $column) { return [ @@ -82,17 +80,11 @@ class MeetupTable extends DataTableComponent 'users', 'meetupEvents' => fn($query) => $query->where('start', '>=', now()), - ]); -// ->when(!$this->country, fn($query) => $query->orderBy( -// MeetupUser::select('meetup_id') -// ->whereColumn('meetup_id', 'meetups.id') -// )) -// ->when($this->country, fn($query) => $query->orderBy( -// MeetupEvent::select('start') -// ->whereColumn('meetup_id', 'meetups.id') -// ->where('start', '>=', now()) -// ->orderBy('start') -// )); + ]) + ->when(!$this->country, fn($query) => $query->orderByDesc('users_count') + ->orderBy('meetups.id')) + ->when($this->country, fn($query) => $query->orderByDesc('meetup_events_count') + ->orderBy('meetups.id')); } public function meetupEventSearch($id) diff --git a/app/Http/Livewire/Tables/VenueTable.php b/app/Http/Livewire/Tables/VenueTable.php index 60fd75e7..7eefa7e9 100644 --- a/app/Http/Livewire/Tables/VenueTable.php +++ b/app/Http/Livewire/Tables/VenueTable.php @@ -18,7 +18,6 @@ class VenueTable extends DataTableComponent { $this->setPrimaryKey('id') ->setAdditionalSelects(['id']) - ->setDefaultSort('course_events_count', 'desc') ->setThAttributes(function (Column $column) { return [ 'class' => 'px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider dark:bg-gray-800 dark:text-gray-400', @@ -70,7 +69,9 @@ class VenueTable extends DataTableComponent ->withCount([ 'courseEvents', ]) - ->whereHas('city.country', fn($query) => $query->where('code', $this->country)); + ->whereHas('city.country', fn($query) => $query->where('code', $this->country)) + ->orderByDesc('course_events_count') + ->orderBy('venues.id'); } public function venueSearch($id) diff --git a/app/Nova/Meetup.php b/app/Nova/Meetup.php index 54d8d466..788de903 100644 --- a/app/Nova/Meetup.php +++ b/app/Nova/Meetup.php @@ -36,6 +36,11 @@ class Meetup extends Resource 'city.name', ]; + public static $with = [ + 'city', + 'createdBy', + ]; + public static function afterCreate(NovaRequest $request, Model $model) { auth() diff --git a/app/Nova/MeetupEvent.php b/app/Nova/MeetupEvent.php index f0bb3602..d75e29e8 100644 --- a/app/Nova/MeetupEvent.php +++ b/app/Nova/MeetupEvent.php @@ -35,6 +35,11 @@ class MeetupEvent extends Resource 'meetup.name', ]; + public static $with = [ + 'meetup', + 'createdBy', + ]; + public static function label() { return __('Meetup Event');