->getOptionLabelsUsing(
function (Select $component, array $values) {
/** @var Collection $existingOptions */
$existingOptions = $component->getRecord()->ingredients()->whereIn('id', $values)->pluck('name', 'id');
$optionIdsToAttach = array_diff($values, $existingOptions->keys()->toArray());
$optionsToAttach = Ingredient::query()->whereIn('id', $optionIdsToAttach)->pluck('name', 'id');
return $existingOptions->union($optionsToAttach)->toArray();
}
)
->getOptionLabelsUsing(
function (Select $component, array $values) {
/** @var Collection $existingOptions */
$existingOptions = $component->getRecord()->ingredients()->whereIn('id', $values)->pluck('name', 'id');
$optionIdsToAttach = array_diff($values, $existingOptions->keys()->toArray());
$optionsToAttach = Ingredient::query()->whereIn('id', $optionIdsToAttach)->pluck('name', 'id');
return $existingOptions->union($optionsToAttach)->toArray();
}
)