fix eager

This commit is contained in:
Benjamin Takats
2023-01-19 12:25:35 +01:00
parent 9d2d5ca000
commit f671a44397
7 changed files with 32 additions and 11 deletions

View File

@@ -42,6 +42,10 @@ class EventTable extends Component
'coords' => [$event->venue->city->latitude, $event->venue->city->longitude],
]),
'events' => CourseEvent::query()
->with([
'course',
'venue.city.country',
])
->where('from', '>=', now())
->get()
->map(fn($event) => [

View File

@@ -27,8 +27,8 @@ class BookCaseTable extends DataTableComponent
'date' => null,
'comment' => '',
];
protected $model = BookCase::class;
public string $tableName = 'bookcases';
protected $model = BookCase::class;
public function configure(): void
{
@@ -121,6 +121,9 @@ class BookCaseTable extends DataTableComponent
public function builder(): Builder
{
return BookCase::query()
->with([
'orangePills',
])
->withCount([
'orangePills',
]);

View File

@@ -12,9 +12,8 @@ use Rappasoft\LaravelLivewireTables\Views\Filters\MultiSelectFilter;
class CourseTable extends DataTableComponent
{
public string $country;
protected $model = Course::class;
public string $tableName = 'courses';
protected $model = Course::class;
public function configure(): void
{
@@ -89,6 +88,10 @@ class CourseTable extends DataTableComponent
public function builder(): Builder
{
return Course::query()
->with([
'lecturer',
'tags',
])
->withCount([
'courseEvents',
])

View File

@@ -17,8 +17,8 @@ class EventTable extends DataTableComponent
public string $country;
public bool $viewingModal = false;
public $currentModal;
protected $model = CourseEvent::class;
public string $tableName = 'events';
protected $model = CourseEvent::class;
public function configure(): void
{
@@ -26,7 +26,7 @@ class EventTable extends DataTableComponent
->setPrimaryKey('id')
->setDefaultSort('from', 'asc')
->setAdditionalSelects([
'id',
'course_events.id',
'course_id',
'venue_id',
])
@@ -165,8 +165,9 @@ class EventTable extends DataTableComponent
public function builder(): Builder
{
return CourseEvent::query()
->withCount([
'registrations',
->with([
'course.lecturer',
'course.categories',
])
->where('from', '>=', now())
->whereHas('venue.city.country',

View File

@@ -9,7 +9,6 @@ use App\Models\Tag;
use Illuminate\Database\Eloquent\Builder;
use Rappasoft\LaravelLivewireTables\DataTableComponent;
use Rappasoft\LaravelLivewireTables\Views\Column;
use Rappasoft\LaravelLivewireTables\Views\Columns\ImageColumn;
use Rappasoft\LaravelLivewireTables\Views\Filters\MultiSelectFilter;
use Rappasoft\LaravelLivewireTables\Views\Filters\SelectFilter;
use Rappasoft\LaravelLivewireTables\Views\Filters\TextFilter;
@@ -18,8 +17,8 @@ use Spatie\LaravelOptions\Options;
class LibraryItemTable extends DataTableComponent
{
public string $currentTab;
protected $model = LibraryItem::class;
public string $tableName = 'library_items';
protected $model = LibraryItem::class;
public function configure(): void
{
@@ -159,6 +158,10 @@ class LibraryItemTable extends DataTableComponent
->getName() !== 'library.table.lecturer';
return LibraryItem::query()
->with([
'lecturer',
'tags',
])
->whereHas('libraries', fn($query) => $query->where('libraries.is_public', $shouldBePublic))
->when($this->currentTab !== '*', fn($query) => $query->whereHas('libraries',
fn($query) => $query->where('libraries.name', $this->currentTab)))

View File

@@ -11,9 +11,8 @@ use Rappasoft\LaravelLivewireTables\Views\Filters\TextFilter;
class MeetupTable extends DataTableComponent
{
public ?string $country = null;
protected $model = Meetup::class;
public string $tableName = 'meetups';
protected $model = Meetup::class;
public function configure(): void
{
@@ -72,6 +71,11 @@ class MeetupTable extends DataTableComponent
public function builder(): Builder
{
return Meetup::query()
->with([
'users',
'city.country',
'meetupEvents',
])
->when($this->country, fn($query, $country) => $query->whereHas('city.country',
fn($query) => $query->where('code', $this->country)))
->withCount([