Validation doesn't work on form created with createOptionForm
Folks, I used the createOptionForm function to enable a new record creation form in a select field. Unfortunately, on this form, the unique() validation is not working. I followed a tip from Povilas in the code below, also without success:
// Document comes from a Leandro Ferreira package for document fields in pt_BRDocument::make('cpf') ->label('CPF') ->live() ->cpf('999.999.999-99') ->dehydrateStateUsing(fn(string $state): string => preg_replace('/[.-]+/', '', $state)) ->unique() ->required() ->live() ->afterStateUpdated(function (Forms\Contracts\HasForms $livewire, Document $component) { $livewire->validateOnly($component->getStatePath()); }),
// Document comes from a Leandro Ferreira package for document fields in pt_BRDocument::make('cpf') ->label('CPF') ->live() ->cpf('999.999.999-99') ->dehydrateStateUsing(fn(string $state): string => preg_replace('/[.-]+/', '', $state)) ->unique() ->required() ->live() ->afterStateUpdated(function (Forms\Contracts\HasForms $livewire, Document $component) { $livewire->validateOnly($component->getStatePath()); }),
It only validates required and not unique. When submitting the form, the key violation error occurs, as I tested an already registered document number.
Can anyone tell me where I'm going wrong?
Solution
I implemented something similar, but without using any third party packages (Document) and the validation works as expected. Here's an example of a dropdown with the option to create a new user. The unique validation is added to the email field