This commit is contained in:
Benjamin Takats
2023-01-19 12:57:52 +01:00
parent e48ac8ef11
commit 80be3c8a4c

View File

@@ -32,6 +32,12 @@ class MeetupTable extends DataTableComponent
}) })
->setColumnSelectStatus(false) ->setColumnSelectStatus(false)
->setPerPage(10); ->setPerPage(10);
if ($this->country) {
$this->setDefaultSort('meetup_events_count', 'desc');
} else {
$this->setDefaultSort('users_count', 'desc');
}
} }
public function filters(): array public function filters(): array
@@ -69,18 +75,20 @@ class MeetupTable extends DataTableComponent
public function builder(): Builder public function builder(): Builder
{ {
return Meetup::query() return Meetup::query()
->when($this->country, fn($query, $country) => $query->whereHas('city.country',
fn($query) => $query->where('code', $this->country)))
->with([ ->with([
'users', 'users',
'city.country', 'city.country',
'meetupEvents', 'meetupEvents',
]) ])
->when($this->country,
fn($query, $country) => $query->whereRelation('city.country', 'code', $this->country))
->withCount([ ->withCount([
'users', 'users',
'meetupEvents' => fn($query) => $query->where('start', '>=', now()), 'meetupEvents' => fn($query) => $query->where('start', '>=',
now()),
]) ])
->when($this->country, fn($query) => $query->orderBy('meetup_events_count', 'desc')); ->when($this->country,
fn($query) => $query->orderBy('meetup_events_count', 'desc'));
} }
public function meetupEventSearch($id) public function meetupEventSearch($id)