'datetime:Y-m-d H:i:s', // 指定序列化格式 'created_at' => 'datetime:Y-m-d H:i:s', // 指定序列化格式 // 'updated_at' => 'timestamp', // 指定序列化格式 // 'created_at' => 'timestamp', // 指定序列化格式 ]; /** * 重新格式化时间 * @param DateTimeInterface $date * @return string */ protected function serializeDate(DateTimeInterface $date): string { return $date->format(Carbon::parse($date)->toDateTimeString()); } /** * @param $customer * @param $request * @param $tag 是否返回客户标签 * @return mixed */ public static function getCustomer($customer, $request, $tag = false) { $language = $request->user['language'] ?: 'en'; $customer['grade_txt'] = $language=='en'?Constants::GRADE_EN[$customer['grade']]:Constants::GRADE[$customer['grade']]; $customer['magnitude_txt'] = $language=='en'?Constants::MAGNITUDE_EN[$customer['magnitude']]:Constants::MAGNITUDE[$customer['magnitude']]; $customer['sex_txt'] = $language=='en'?Constants::SEX_EN[$customer['sex']]:Constants::SEX[$customer['sex']]; if ($customer['grade']<=2) { $customer['follow'] = 0; $customer['follow_txt'] = ($language == 'en' ? 'Following' : '跟进中'); }elseif ($customer['grade']<5) { $customer['follow'] = 1; $customer['follow_txt'] = ($language == 'en' ? 'transacted' : '已成交'); }else{ $customer['follow'] = 2; $customer['follow_txt'] = ($language == 'en' ? 'lost' : '已流失'); } $where = [ 'customer_id' => $customer['id'] ]; $begin_follow = Follow::select('id','created_at','updated_at') ->where($where) ->min('created_at'); $customer['begin_follow'] = Util::timeTotDate($begin_follow); // $customer['created_at'] = Util::timeTotDate($customer['created_at']); // $customer['updated_at'] = Util::timeTotDate($customer['updated_at']); $customer = Util::formatDate($customer,['follow_last']); $nameLang = $language=='en'?'name_en':'name'; $countryLang = $language=='en'?'en_addr':'cn_addr'; $customer['car_type_name'] = empty($customer['car_type_id'])?'':CarType::where(['id'=>$customer['car_type_id']])->value($nameLang); $customer['country_name'] = empty($customer['country_id'])?'':Country::where(['id'=>$customer['country_id']])->value($countryLang); $customer['channel_name'] = empty($customer['channel_id'])?'':Channel::where(['id'=>$customer['channel_id']])->value($nameLang); // $customer['last_follow'] = $last_follow; if ($tag) { foreach ($customer['tags'] as &$tag) { $tag['names'] = unserialize($tag['names']); $tag['name'] = $tag['names'][$language]; } } return $customer; } /** * 客户的标签 */ public function tags() { return $this->belongsToMany(Tag::class, 'customer_tag', 'customer_id', 'tag_id') ->withTimestamps(); // 如果需要记录关联时间 } // 定义与 变更历史 的一对多关系 public function his() { return $this->hasMany(CustomerHis::class, 'customer_id', 'id'); } }