F
Filament12h ago
Nils

Missing namings on using panel in table builder

public function table(Table $table): Table
{
return $table
->query(
Booking::query()
->with('travelers')
->whereHas('product.contract', function ($query) {
$query->where('hotel_id', auth()->user()->id);
})
)
->columns([
TextColumn::make('booking_number')
->label(__('Booking Number')),
TextColumn::make('starts_at')
->label(__('Start'))
->date(),
TextColumn::make('ends_at')
->label(__('End'))
->date(),
TextColumn::make('room.name')
->label(__('Room')),
Panel::make([
Stack::make([
TextColumn::make('travelers')
->label(__('Travelers'))
->icon('heroicon-m-user-group')
->formatStateUsing(function ($record) {
return $record->travelers->map(function ($traveler) {
$bornAt = $traveler->born_at ? sprintf(' (%s)', $traveler->born_at->format('d.m.Y')) : '';

return $traveler->name.$bornAt;
})->join(', ');
}),
]),
])->collapsible(),
])
->filters([
Filter::make('date_range')
->form([
DatePicker::make('starts_from')
->label(__('From')),
DatePicker::make('starts_until')
->label(__('To')),
])
->query(function (Builder $query, array $data): Builder {
return $query
->when(
$data['starts_from'],
fn (Builder $query, $date): Builder => $query->whereDate('starts_at', '>=', $date),
)
->when(
$data['starts_until'],
fn (Builder $query, $date): Builder => $query->whereDate('starts_at', '<=', $date),
);
}),
])
->emptyStateHeading(__('No Bookings'));
}
public function table(Table $table): Table
{
return $table
->query(
Booking::query()
->with('travelers')
->whereHas('product.contract', function ($query) {
$query->where('hotel_id', auth()->user()->id);
})
)
->columns([
TextColumn::make('booking_number')
->label(__('Booking Number')),
TextColumn::make('starts_at')
->label(__('Start'))
->date(),
TextColumn::make('ends_at')
->label(__('End'))
->date(),
TextColumn::make('room.name')
->label(__('Room')),
Panel::make([
Stack::make([
TextColumn::make('travelers')
->label(__('Travelers'))
->icon('heroicon-m-user-group')
->formatStateUsing(function ($record) {
return $record->travelers->map(function ($traveler) {
$bornAt = $traveler->born_at ? sprintf(' (%s)', $traveler->born_at->format('d.m.Y')) : '';

return $traveler->name.$bornAt;
})->join(', ');
}),
]),
])->collapsible(),
])
->filters([
Filter::make('date_range')
->form([
DatePicker::make('starts_from')
->label(__('From')),
DatePicker::make('starts_until')
->label(__('To')),
])
->query(function (Builder $query, array $data): Builder {
return $query
->when(
$data['starts_from'],
fn (Builder $query, $date): Builder => $query->whereDate('starts_at', '>=', $date),
)
->when(
$data['starts_until'],
fn (Builder $query, $date): Builder => $query->whereDate('starts_at', '<=', $date),
);
}),
])
->emptyStateHeading(__('No Bookings'));
}
I missing the namings at top of table.
No description
Solution:
This is expected because Split, Stack, ... remove the classic table layout and therefore there are no headers anymore.
Jump to solution
2 Replies
Nils
NilsOP12h ago
Missing this.
No description
Solution
Dennis Koch
Dennis Koch12h ago
This is expected because Split, Stack, ... remove the classic table layout and therefore there are no headers anymore.

Did you find this page helpful?