moneyphp/money

This field is attempting to submit the form on page load for some reason

Closed this issue · 1 comments

First off, thanks for this package, I think it will be a huge help to me. I'm running into an issue where it seems to be submitting my form as soon as the page loads. In my use case (livewire component) there's not a model initially, so i get a failure on an insert statement to my model table. If I comment out the MoneyInput field, it works as expected.

    public function form(Form $form): Form
    {
        return $form->schema([
            Section::make()->schema([

    ...my other fields...

                MoneyInput::make('total')
                    ->required()
                    // ->live(debounce: 500)
                    ->minValue(0)
                    ->afterStateUpdated(function (?string $state, ?string $old) {

                        Log::debug($state);

                        $this->item->total = $this->toInteger($state);
                        $this->item->save();
                    }),
            ])->compact()

        ])->statePath('data')
            ->model($this->item);
    }

I thought live() might be causing it, so I commented that out and I'm still getting the same behavior.

If I comment out the afterStateUpdated method, it works, but when I log out $state on form submit, it appears to be the float representation and I need to get my values converted to integers before storing them in the DB. Is there some auto-magic way to do that that I missed somewhere?

image

We are not a support desk.