SpatieMediaLibraryFileUpload not working on $this->form->fill() after upgrading to v3
I upgraded to Filament v3 and everything has been super smooth except for one part
For some reason the SpatieMediaLibrary plugin (which is also upgraded to v3) is not operating as expected. I'm getting the following error when my form component loads:
This seems to stem from using the media library to populate the form in the
mount()
method of the component, which looks like this:
If I remove this line or change it to a simple value (e.g. a string), the form loads and the component renders, but obviously it doesn't load with any pre-filled data (i.e. any images that were previously uploaded)
Does anyone know what needs to change here?Solution:Jump to solution
I found the cause... I was missing the call to
->model()
on the end of my $form
in the component
```
// Before...
public function form(Form $form): Form...3 Replies
are you casting it to array in your model?
maybe then you need to add ->multiple()!
I've not seen any references to casting this in the model or any referencing to casting in the docs of either the Filament wrapper or the Spatie Media Library package...
The way the model registers its interest in managing media library uploads is by implementing the
Spatie\MediaLibrary\HasMedia
interface and using the Spatie\MediaLibrary\InteractsWithMedia
trait
My model overrides the registerMediaCollections()
method as needed to create the following photo
media collection:
This all worked in Filament v2 and I can't find any reference to anything changing (either that has changed or should change) that would cause this to stop workingSolution
I found the cause... I was missing the call to
->model()
on the end of my $form
in the component