hasOne(WechatFans::class, 'openid', 'openid'); } /** * 绑定用户粉丝数据. */ public function bindFans(): HasOne { return $this->fans()->bind([ 'fans_headimg' => 'headimgurl', 'fans_nickname' => 'nickname', ]); } /** * 格式化输出时间格式. * @param mixed $value */ public function getCreateTimeAttr($value): string { return $value ? format_datetime($value) : ''; } /** * 格式化输出时间格式. * @param mixed $value */ public function getUpdateTimeAttr($value): string { return $value ? format_datetime($value) : ''; } /** * 格式化输出时间格式. * @param mixed $value */ public function getPaymentTimeAttr($value): string { return $value ? format_datetime($value) : ''; } /** * 转换数据类型. */ public function toArray(): array { $data = parent::toArray(); $data['type_name'] = PaymentService::tradeTypeNames[$data['type']] ?? $data['type']; return $data; } }