shipu / filament-boring-avatars
将 Filament 的默认头像 URL 提供程序更改为 Boring Avatars 中的一个。
v1.0.0
2023-05-19 21:19 UTC
Requires
- php: ^8.0.2
- filament/filament: ^2.0
- illuminate/contracts: ^9.0|^10.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0|^7.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5|^10.0
README
将 Filament 的默认头像 URL 提供程序更改为 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
更新日志
请参阅 CHANGELOG 了解最近更改的更多信息。
致谢
许可协议
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。