use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
use Lunar\Admin\Support\Extending\ResourceExtension;
class MyProductResourceExtension extends ResourceExtension
{
public function extendForm(Form $form): Form
{
return $form->schema([
...$form->getComponents(withHidden: true),
TextInput::make('custom_column'),
]);
}
public function extendTable(Table $table): Table
{
return $table->columns([
...$table->getColumns(),
TextColumn::make('product_code'),
]);
}
public function getRelations(array $managers): array
{
return [
...$managers,
MyCustomProductRelationManager::class,
];
}
public function extendPages(array $pages): array
{
return [
...$pages,
'my-page-route-name' => MyPage::route('/{record}/my-page'),
];
}
public function extendSubNavigation(array $nav): array
{
return [
...$nav,
MyPage::class,
];
}
}
// Typically placed in a service provider...
LunarPanel::extensions([
\Lunar\Admin\Filament\Resources\ProductResource::class => MyProductResourceExtension::class,
]);