mirror of
https://github.com/Einundzwanzig-Podcast/einundzwanzig-portal.git
synced 2025-12-11 06:46:47 +00:00
subquery
This commit is contained in:
@@ -3,6 +3,8 @@
|
||||
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;
|
||||
@@ -16,8 +18,8 @@ class MeetupTable extends DataTableComponent
|
||||
public function configure(): void
|
||||
{
|
||||
$this->setPrimaryKey('id')
|
||||
->setDebugEnabled()
|
||||
->setAdditionalSelects(['id', 'slug'])
|
||||
->setDefaultSort('meetup_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',
|
||||
@@ -32,12 +34,6 @@ class MeetupTable extends DataTableComponent
|
||||
})
|
||||
->setColumnSelectStatus(false)
|
||||
->setPerPage(10);
|
||||
|
||||
if ($this->country) {
|
||||
$this->setDefaultSort('meetup_events_count', 'desc');
|
||||
} else {
|
||||
$this->setDefaultSort('users_count', 'desc');
|
||||
}
|
||||
}
|
||||
|
||||
public function filters(): array
|
||||
@@ -87,8 +83,16 @@ class MeetupTable extends DataTableComponent
|
||||
'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(
|
||||
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)
|
||||
|
||||
10
app/Models/MeetupUser.php
Normal file
10
app/Models/MeetupUser.php
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class MeetupUser extends Model
|
||||
{
|
||||
protected $table = 'meetup_user';
|
||||
}
|
||||
Reference in New Issue
Block a user