danjamesmills / initials-avatar-generator
Requires
- php: ^7.3|^8.0
- danjamesmills/laravel-response: ^1.0
- illuminate/support: ^7.0|^8.0|^9.0|^10.0|^11.0
- intervention/image: ^2.7
Requires (Dev)
- orchestra/testbench: ^7.0|^8.0
- phpunit/phpunit: ^9.4
README
介绍 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)。请参阅 许可证文件 了解更多信息。