[Filament Spatie Media Library Plugin] fallback url not displaying on SpatieMediaLibraryImageColumn

What I am trying to do: I am trying to display the default avatar on SpatieMediaLibraryImageColumn. What I did: I added a fallback url in my registerMediaCollections() definition. My issue/the error: The fallback image is not getting displayed in the SpatieMediaLibraryImageColumn Code:
// User.php
public function registerMediaCollections(): void
{
$this
->addMediaCollection('avatar')
->useDisk('avatars')
->singleFile()
->useFallbackUrl($this->placeholderAvatarUrl())
->registerMediaConversions(function (Media $media) {
$this
->addMediaConversion('thumb')
->fit(Fit::Crop, 160, 160)
->format('webp');
});
}

// my workaround solution
public function getTestAttribute(): ?string
{
return $this->getFirstMediaUrl('avatar', 'thumb');
}

protected function placeholderAvatarUrl(): string
{
return 'https://ui-avatars.com/api/?background=000&color=fff&name=' . urlencode('Test 1');
}

//------------

// UserTable.php

// This doesn't show the placeholderAvatarUrl()
SpatieMediaLibraryImageColumn::make('avatar')
->label('SpatieMediaLibraryImageColumn')
->circular()
->collection('avatar')
->conversion('thumb'),

// This one does, but I was thinking of remaining consistent
// by preferably sticking with SpatieMediaLibraryImageColumn
// since I am using the plugin afterall
ImageColumn::make('test')
->label('ImageColumn')
->circular(),
// User.php
public function registerMediaCollections(): void
{
$this
->addMediaCollection('avatar')
->useDisk('avatars')
->singleFile()
->useFallbackUrl($this->placeholderAvatarUrl())
->registerMediaConversions(function (Media $media) {
$this
->addMediaConversion('thumb')
->fit(Fit::Crop, 160, 160)
->format('webp');
});
}

// my workaround solution
public function getTestAttribute(): ?string
{
return $this->getFirstMediaUrl('avatar', 'thumb');
}

protected function placeholderAvatarUrl(): string
{
return 'https://ui-avatars.com/api/?background=000&color=fff&name=' . urlencode('Test 1');
}

//------------

// UserTable.php

// This doesn't show the placeholderAvatarUrl()
SpatieMediaLibraryImageColumn::make('avatar')
->label('SpatieMediaLibraryImageColumn')
->circular()
->collection('avatar')
->conversion('thumb'),

// This one does, but I was thinking of remaining consistent
// by preferably sticking with SpatieMediaLibraryImageColumn
// since I am using the plugin afterall
ImageColumn::make('test')
->label('ImageColumn')
->circular(),
No description
Solution:
Updated both Filament and the plugin from 4.0.0 -> 4.0.15 (idk which of them fixed it)
Jump to solution
2 Replies
BerriesAndCream
BerriesAndCreamOP3w ago
First row user avatar is from thispersondoesnotexist.com And I also have no experience with Php, Laravel, Livewire, and Filament
Solution
BerriesAndCream
Updated both Filament and the plugin from 4.0.0 -> 4.0.15 (idk which of them fixed it)

Did you find this page helpful?