From 3e27e367b48e9e4db2135e5133ad47e4fd724585 Mon Sep 17 00:00:00 2001 From: Benjamin Takats Date: Sun, 15 Jan 2023 14:51:26 +0100 Subject: [PATCH] sort by coursesEvents --- app/Http/Livewire/Tables/LecturerTable.php | 9 +++++++-- app/Models/Lecturer.php | 6 ++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/Http/Livewire/Tables/LecturerTable.php b/app/Http/Livewire/Tables/LecturerTable.php index f15d0743..c7d890f2 100644 --- a/app/Http/Livewire/Tables/LecturerTable.php +++ b/app/Http/Livewire/Tables/LecturerTable.php @@ -17,6 +17,7 @@ class LecturerTable extends DataTableComponent public function configure(): void { $this->setPrimaryKey('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', @@ -62,7 +63,9 @@ class LecturerTable extends DataTableComponent ->collapseOnMobile(), Column::make('') ->label( - fn($row, Column $column) => view('columns.lectures.action')->withRow($row)->withCountry($this->country) + fn($row, Column $column) => view('columns.lectures.action') + ->withRow($row) + ->withCountry($this->country) ), ]; @@ -73,13 +76,15 @@ class LecturerTable extends DataTableComponent return Lecturer::query() ->withCount([ 'courses', + 'coursesEvents', 'libraryItems', ]); } public function lecturerSearch($id, $event = true) { - $lecturer = Lecturer::query()->find($id); + $lecturer = Lecturer::query() + ->find($id); if ($event) { return to_route('school.table.event', [ diff --git a/app/Models/Lecturer.php b/app/Models/Lecturer.php index 59d6e1a6..86f3a385 100644 --- a/app/Models/Lecturer.php +++ b/app/Models/Lecturer.php @@ -6,6 +6,7 @@ use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Relations\HasManyThrough; use Spatie\Image\Manipulations; use Spatie\MediaLibrary\HasMedia; use Spatie\MediaLibrary\InteractsWithMedia; @@ -93,6 +94,11 @@ class Lecturer extends Model implements HasMedia return $this->hasMany(Course::class); } + public function coursesEvents(): HasManyThrough + { + return $this->hasManyThrough(CourseEvent::class, Course::class); + } + public function libraryItems(): HasMany { return $this->hasMany(LibraryItem::class);