Repeater based on other iterations
I want to create a repeater that allows a user to attach multiple locations, but every locations only once.
so far i got this:
This allows me to create multiple attachments, but i can attach every location multiple times.
i got this far, but this removes all the attached locations
so far i got this:
Forms\Components\Repeater::make('clientLocations')
->label(__('Locations'))
->live()
->relationship()
->orderColumn('order')
->simple(
Forms\Components\Select::make('location_id')
->live()
->relationship('location', 'name')
->required()
),Forms\Components\Repeater::make('clientLocations')
->label(__('Locations'))
->live()
->relationship()
->orderColumn('order')
->simple(
Forms\Components\Select::make('location_id')
->live()
->relationship('location', 'name')
->required()
),This allows me to create multiple attachments, but i can attach every location multiple times.
i got this far, but this removes all the attached locations
Forms\Components\Repeater::make('clientLocations')
->label(__('Locations'))
->live()
->relationship()
->orderColumn('order')
->simple(
Forms\Components\Select::make('location_id')
->live()
->relationship('location', 'name', function (Builder $query, Get $get) {
Log::info(json_encode($get('../../clientLocations')));
return $query->whereNotIn('id',array_column($get('../../clientLocations'), 'location_id'));
})
->required()
),Forms\Components\Repeater::make('clientLocations')
->label(__('Locations'))
->live()
->relationship()
->orderColumn('order')
->simple(
Forms\Components\Select::make('location_id')
->live()
->relationship('location', 'name', function (Builder $query, Get $get) {
Log::info(json_encode($get('../../clientLocations')));
return $query->whereNotIn('id',array_column($get('../../clientLocations'), 'location_id'));
})
->required()
),