Select::make('country_id')
->label(__('country_name'))
->relationship('country', 'name')
->options(Country::all()->pluck('name', 'id')->toArray())
->reactive()
->rules('required')
->afterStateUpdated(fn (callable $set) => $set('zone_id', null)),
Select::make('zone_id')
->label(__('zone_name'))
->relationship('zone', 'name')
->options(function (callable $get) {
$country = Country::find($get('country_id'));
if (!$country) {
return [];
}
return $country->zones->pluck('name', 'id');
})
->rules('required'),
TextInput::make('name')
->label(__('city.name'))
->rules('required|min:3|max:255')
->placeholder(__('city.name'))
->columnSpanFull(),
Select::make('country_id')
->label(__('country_name'))
->relationship('country', 'name')
->options(Country::all()->pluck('name', 'id')->toArray())
->reactive()
->rules('required')
->afterStateUpdated(fn (callable $set) => $set('zone_id', null)),
Select::make('zone_id')
->label(__('zone_name'))
->relationship('zone', 'name')
->options(function (callable $get) {
$country = Country::find($get('country_id'));
if (!$country) {
return [];
}
return $country->zones->pluck('name', 'id');
})
->rules('required'),
TextInput::make('name')
->label(__('city.name'))
->rules('required|min:3|max:255')
->placeholder(__('city.name'))
->columnSpanFull(),