cmdinglasan/filament-boring-avatars

将 Filament 的默认头像 URL 提供程序更改为 Boring Avatars 中的一个。

v1.2 2023-05-29 14:02 UTC

README

Filament Boring Avatars Banner

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

将 Filament 的默认头像 URL 提供程序更改为 Boring Avatars 中的一个。

通知

此包是为 Filament v2 制作的。此包不支持 Filament v3。

有关 Filament v3 的信息,请参阅 Filament v3 文档 中关于 Boring Avatars 实现和设置不同头像提供程序的说明。

为什么选择此插件?

Boring avatars 是一个微小的 JavaScript React 库,它可以从任何用户名和调色板生成基于 SVG 的自定义头像。

此插件使用 Boring Avatar API 获取生成的用户头像。仅将 Filament 用户的姓名的首字母提交到 API。

安装

您可以通过 composer 安装此包

composer require cmdinglasan/filament-boring-avatars

您可以使用以下命令发布配置文件

php artisan vendor:publish --tag="filament-boring-avatars-config"

这是已发布配置文件的内容

return [
    // default source url for Boring Avatars API
    'url' => 'https://source.boringavatars.com',

    // variants = marble (default), beam, pixel, sunset, ring, bauhaus
    'variant' => 'marble',

    // size in px
    'size' => '40',

    // array of colors to use
    'colors' => ['#264653','#2a9d8f','#e9c46a','#f4a261','#e76f51'],
];

如何使用

1. 在 Filament 中

在 Filament 的 config.php 文件中,将 avatar_url_provider 更改为 Cmdinglasan\FilamentBoringAvatars\AvatarProviders\UiAvatarsProvider::class

/*
|--------------------------------------------------------------------------
| Default Avatar Provider
|--------------------------------------------------------------------------
|
| This is the service that will be used to retrieve default avatars if one
| has not been uploaded.
|
*/

'default_avatar_provider' => Cmdinglasan\FilamentBoringAvatars\AvatarProviders\UiAvatarsProvider::class,

2. 在您的 Laravel 应用中

要在此 Laravel 应用中使用,只需将 HasAvatarUrl 特性添加到您的模型中。

<?php

namespace App\Models;

use Cmdinglasan\FilamentBoringAvatars\Traits\HasAvatarUrl;

class User
{
    use HasAvatarUrl;
}

在模型中,使用模型的名字属性或添加一个 name 属性。

// Example for getAttribute:
public function getNameAttribute()
{
    return $this->first_name . ' ' . $this->last_name;
}

// Example using accessor
use Illuminate\Database\Eloquent\Casts\Attribute;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * Get the user's name
     *
     * @return Attribute
     */
    protected function name(): Attribute
    {
        return Attribute::make(
            get: fn () => $this->first_name . ' ' . $this->last_name,
        );
    }
}

然后只需使用 avatarUrl 属性调用即可。

$user = User::find(1)->avatarUrl;

测试

此包使用 PestPHP 进行测试。要运行测试,请运行以下命令

composer test

变更日志

请参阅 变更日志 以获取有关最近更改的更多信息。

致谢

许可协议

MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件