This commit is contained in:
Benjamin Takats
2023-01-19 13:36:13 +01:00
parent 80be3c8a4c
commit cb0d774e0c
2 changed files with 23 additions and 9 deletions

View File

@@ -3,6 +3,8 @@
namespace App\Http\Livewire\Tables; namespace App\Http\Livewire\Tables;
use App\Models\Meetup; use App\Models\Meetup;
use App\Models\MeetupEvent;
use App\Models\MeetupUser;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Rappasoft\LaravelLivewireTables\DataTableComponent; use Rappasoft\LaravelLivewireTables\DataTableComponent;
use Rappasoft\LaravelLivewireTables\Views\Column; use Rappasoft\LaravelLivewireTables\Views\Column;
@@ -16,8 +18,8 @@ class MeetupTable extends DataTableComponent
public function configure(): void public function configure(): void
{ {
$this->setPrimaryKey('id') $this->setPrimaryKey('id')
->setDebugEnabled()
->setAdditionalSelects(['id', 'slug']) ->setAdditionalSelects(['id', 'slug'])
->setDefaultSort('meetup_events_count', 'desc')
->setThAttributes(function (Column $column) { ->setThAttributes(function (Column $column) {
return [ 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', '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',
@@ -32,12 +34,6 @@ 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
@@ -87,8 +83,16 @@ class MeetupTable extends DataTableComponent
'meetupEvents' => fn($query) => $query->where('start', '>=', 'meetupEvents' => fn($query) => $query->where('start', '>=',
now()), now()),
]) ])
->when($this->country, ->when(!$this->country, fn($query) => $query->orderBy(
fn($query) => $query->orderBy('meetup_events_count', 'desc')); 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')
));
} }
public function meetupEventSearch($id) public function meetupEventSearch($id)

10
app/Models/MeetupUser.php Normal file
View File

@@ -0,0 +1,10 @@
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class MeetupUser extends Model
{
protected $table = 'meetup_user';
}