*/ class OrdersTable extends Table { protected $model = Order::class; /** * @return Builder */ protected function query(): Builder { return Order::withCount('products'); } public function toolbars(): array { return [ Toolbar::make($this) ->appendEnd(Dropdown::make() ->attributes(['class' => 'btn-primary']) ->slot('Dropdown') ->items([ Button::make() ->slot('Item button 1') ->action(['dropdownAction', 'World']), Link::make() ->slot('Products') ->href(route('products')), ]) ), ]; } public function dropdownAction(string $val): void { $this->js("alert('hello {$val}')"); } public function columns(): array { return [ Column::make('id', 'ID'), Column::make('status', 'Status') ->slot(fn (Order $r) => ucfirst($r->status->value)), Column::make('products_count', 'Product Count'), Column::make('total', 'Total Price') ->slot(fn (Order $r) => new HtmlString( '£'.number_format((float) $r->total, 2).'' )), ]; } }