6
0
Fork 0
jiqu-library-server/app/Models/UserInfo.php

60 lines
1.3 KiB
PHP

<?php
namespace App\Models;
use App\Helpers\Str;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class UserInfo extends Model
{
use HasFactory;
public const GENDER_UNKNOWN = 'unknown'; // 未知
public const GENDER_MALE = 'male'; // 男性
public const GENDER_FEMALE = 'female'; // 女性
/**
* @var array
*/
protected $attributes = [
'gender' => self::GENDER_UNKNOWN,
];
/**
* @var array
*/
protected $fillable = [
'user_id',
'inviter_id',
'nickname',
'avatar',
'gender',
'birthday',
];
/**
* @var array
*/
protected $casts = [
'birthday' => 'date',
];
/**
* {@inheritdoc}
*/
protected static function booted()
{
parent::saving(function ($userInfo) {
// 如果没有邀请码,则自动分配邀请码
if ($userInfo->code === null) {
do {
$userInfo->code = strtolower(Str::randomAlpha(6));
} while (static::where('code', $userInfo->code)->exists());
} elseif ($userInfo->isDirty('code')) {
$userInfo->code = strtolower($userInfo->code);
}
});
}
}