Skip to content

Commit 4313f05

Browse files
update form logic to dynamically filter point_type options based on service_type selection (#159)
1 parent 0da9531 commit 4313f05

1 file changed

Lines changed: 11 additions & 3 deletions

File tree

app/Filament/Resources/PointResource/Pages/ViewMapPoint.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,18 +293,26 @@ public function infolist(Infolist $infolist): Infolist
293293
->action(fn (array $data) => $this->record->update($data))
294294
->fillForm($this->record->toArray())
295295
->form([
296+
Select::make('service_type_id')
297+
->label(__('map_points.fields.service_type'))
298+
->relationship('serviceType', 'name')
299+
->live()
300+
->required(),
301+
296302
Select::make('point_type_id')
297303
->label(__('map_points.fields.point_type'))
298304
->relationship('pointType', 'name')
299-
->options(PointType::where('service_type_id', $this->record->service_type_id)->get()->pluck('name', 'id')->toArray())
305+
->options(fn (Get $get) => PointType::query()
306+
->where('service_type_id', $get('service_type_id') ?? $this->record->service_type_id)
307+
->get()
308+
->pluck('name', 'id')->toArray())
300309
->required(),
301310

302311
Select::make('materials')
303312
->label(__('map_points.fields.materials'))
304313
->hidden($this->showField('can_collect_materials'))
305314
->relationship('materials', 'name')
306-
->multiple()
307-
->required(),
315+
->multiple(),
308316

309317
TextInput::make('business_name')
310318
->label(__('map_points.fields.business_name'))

0 commit comments

Comments
 (0)