danjamesmills/initials-avatar-generator

2.0.1 2024-09-12 16:02 UTC

This package is auto-updated.

Last update: 2024-09-12 16:02:24 UTC


README

Latest Version on Packagist Total Downloads GitHub Actions

介绍 Laravel Avatar 包,这是一个用于为您的 Laravel 应用中的任何模型生成独特头像图像的强大工具。此包允许您根据为模型指定的字段(如姓名、电子邮件或任何其他字段)轻松创建独特的头像图像。使用此包,您可以轻松地将头像功能添加到应用程序中,并确保每个用户或模型都有一个独特且个性化的头像图像。它还可以配置使用不同的图像生成库,以便您可以选择最适合您项目的库。具有简单直观的 API,您可以为应用程序中的任何模型轻松生成头像,节省时间和精力。Laravel Avatar 包使您能够轻松地将个性化头像添加到应用程序中,增强用户体验并使您的应用程序看起来更加专业。

安装

您可以通过 composer 安装此包

composer require danjamesmills/initials-avatar-generator

发布配置(可选)

您应使用以下命令发布迁移和 config/initials-avatar-generator.php 配置文件:

php artisan vendor:publish --provider="DanJamesMills\InitialsAvatarGenerator\InitialsAvatarGeneratorServiceProvider"

运行迁移:在配置和迁移发布并配置后,您可以通过运行以下命令创建此包的表:

php artisan migrate

公开可访问的存储路径

在 config/initials-avatar-generator.php 中,我们已使用以下路径存储头像图像,您可以自由更改此路径。

'storage_path' => storage_path('app/public/avatars/'),

如果您使用上述路径,请勿忘记从控制台链接存储和公共路径并创建 'avatars' 文件夹。

mkdir storage/app/public/avatars
php artisan storage:link

基本用法

首先,将 DanJamesMills\InitialsAvatarGenerator\Traits\HasAvatar 特性添加到您的 User 模型中

use Illuminate\Foundation\Auth\User as Authenticatable;
use DanJamesMills\InitialsAvatarGenerator\Traits\HasAvatar;

class User extends Authenticatable
{
    use HasAvatar;

    // ...
}

定义访问器

use Illuminate\Foundation\Auth\User as Authenticatable;
use DanJamesMills\InitialsAvatarGenerator\Traits\HasAvatar;
use Illuminate\Database\Eloquent\Casts\Attribute;

class User extends Authenticatable
{
    /**
     * Get the user's avatar.
     *
     * @return \Illuminate\Database\Eloquent\Casts\Attribute
     */
    protected function avatar(): Attribute
    {
        return Attribute::make(
            get: fn ($value) => url("/storage/avatars/{$value}"),
        );
    }
}

定义模型头像字段

use Illuminate\Foundation\Auth\User as Authenticatable;
use DanJamesMills\InitialsAvatarGenerator\Traits\HasAvatar;

class User extends Authenticatable
{
    /**
     * Used to define the fields of which initials avatar 
     * generator will create initials from.
     *
     * @return string
     */
    protected function defineNameInitialsAvatarGenerator(): string
    {
        return $this->name;
    }
}

如果您使用了与默认迁移名称 'avatar' 不同的列名,您必须在模型上定义此新列名。

use Illuminate\Foundation\Auth\User as Authenticatable;
use DanJamesMills\InitialsAvatarGenerator\Traits\HasAvatar;

class User extends Authenticatable
{
    /**
     * Used to define the column field name of which 
     * you want to save avatar image to.
     *
     * @return string
     */
    protected function defineAvatarColumnName(): string
    {
        return 'avatarColumnName';
    }
}

生成头像

如果您的模型未设置头像,您可以在以下位置生成一个。

$user = User::findOrFail(4);

$user->generateAvatarAndSet();
$user->save();

return "<img src='{$user->avatar}' width='250px' />";

如果您更新了头像字段的值(例如用户的姓名),系统将自动为您生成并保存头像。

$user = User::findOrFail(4);

$user->name = 'John Doe'; // changed from Dan Doe
$user->save();

return "<img src='{$user->avatar}' width='250px' />";

更新日志

请参阅 更新日志 了解最近更改的信息。

贡献

请参阅 贡献 了解详细信息。

安全

如果您发现任何安全问题,请通过电子邮件 daniel620@hotmail.co.uk 而不是使用问题跟踪器。

鸣谢

许可

MIT 许可证(MIT)。请参阅 许可证文件 了解更多信息。