Провайдер аватаров в Filament
Давайте подключим провайдер аватаров.
Когда getFilamentAvatarUrl
не отдаёт файл,
шапка
/admin/profile
может взять картинку
из инициалов имени.
Класс InitialsProvider.php
реализует контракт
AvatarProvider.
Метод get
принимает запись
работника и возвращает
URL службы с буквами
из его имени.
Создадим провайдер с адресом ui-avatars:
<?php
namespace App\Filament\AvatarProviders;
use Filament\AvatarProviders\Contracts\AvatarProvider;
use Filament\Facades\Filament;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Database\Eloquent\Model;
class InitialsProvider implements AvatarProvider
{
public function get(Model | Authenticatable $record): string
{
$name = Filament::getNameForDefaultAvatar($record);
return 'https://ui-avatars.com/api/?name=' . urlencode($name);
}
}
?>
Откроем AdminPanelProvider.php
и зададим провайдер
по умолчанию рядом
с входом и адресом:
<?php
namespace App\Providers\Filament;
use App\Filament\AvatarProviders\InitialsProvider;
use Filament\Panel;
use Filament\PanelProvider;
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->login()
->defaultAvatarProvider(InitialsProvider::class);
}
}
?>
Покажите в шапке картинку из инициалов, если своего файла нет.