123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- <?php
- namespace App\Models;
- use Dcat\Admin\Traits\HasDateTimeFormatter;
- use Illuminate\Database\Eloquent\Relations\BelongsTo;
- use Illuminate\Database\Eloquent\SoftDeletes;
- use Illuminate\Foundation\Auth\User as Authenticatable;
- use Illuminate\Notifications\Notifiable;
- use PHPOpenSourceSaver\JWTAuth\Contracts\JWTSubject;
- /**
- * App\Models\User
- *
- * @property int $id
- * @property string $nickname 昵称
- * @property string $avatar 头像
- * @property string $password 密码
- * @property string $email
- * @property string $mobile 手机号
- * @property string $open_id openid
- * @property string $union_id
- * @property int $status 状态 1-正常 0-禁用
- * @property string|null $email_verified_at
- * @property string|null $remember_token
- * @property string|null $remark 备注
- * @property int $type 用户类型 1-普通用户 2-VIP 3-设计师
- * @property \Illuminate\Support\Carbon|null $created_at
- * @property \Illuminate\Support\Carbon|null $updated_at
- * @property-read \Illuminate\Notifications\DatabaseNotificationCollection|\Illuminate\Notifications\DatabaseNotification[] $notifications
- * @property-read int|null $notifications_count
- * @method static \Illuminate\Database\Eloquent\Builder|User newModelQuery()
- * @method static \Illuminate\Database\Eloquent\Builder|User newQuery()
- * @method static \Illuminate\Database\Eloquent\Builder|User query()
- * @method static \Illuminate\Database\Eloquent\Builder|User whereAvatar($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereCreatedAt($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereEmail($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereEmailVerifiedAt($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereId($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereMobile($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereNickname($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereOpenId($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User wherePassword($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereRemark($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereRememberToken($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereStatus($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereType($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereUnionId($value)
- * @method static \Illuminate\Database\Eloquent\Builder|User whereUpdatedAt($value)
- * @mixin \Eloquent
- * @property int $account_id 关联账号ID
- * @property-read \App\Models\Account|null $account
- * @method static \Illuminate\Database\Eloquent\Builder|User whereAccountId($value)
- */
- class User extends Authenticatable implements JWTSubject
- {
- use Notifiable,HasDateTimeFormatter;
- /**
- * The attributes that are mass assignable.
- *
- * @var array
- */
- protected $fillable = [
- 'nickname',
- 'email',
- 'password'
- ];
- /**
- * The attributes that should be hidden for arrays.
- *
- * @var array
- */
- protected $hidden = [
- 'password',
- 'remember_token',
- 'email_verified_at',
- 'created_at',
- 'updated_at',
- 'deleted_at',
- 'mobile'
- ];
- public function getJWTIdentifier()
- {
- return $this->getKey(); // TODO: Implement getJWTIdentifier() method.
- }
- public function getJWTCustomClaims()
- {
- return [
- 'role' => 'user'
- ]; // TODO: Implement getJWTCustomClaims() method.
- }
- protected function serializeDate(\DateTimeInterface $date)
- {
- return $date->format($this->dateFormat ?: 'Y-m-d H:i:s');
- }
- /**
- * 设置密码加密
- * @param $value
- * @return string
- */
- public function setPasswordAttribute($value)
- {
- $this->attributes['password'] = bcrypt($value);
- }
- public function account(): BelongsTo
- {
- return$this->belongsTo(Account::class,'account_id', 'id');
- }
- }
|