'array', // 'tags'=>'array', 'spec'=>'array', ]; public static $_ONSALE = ['否','是']; public static $_ISINFINITE = ['关闭','开启']; public function getCoverImgUrlAttribute($value) { $value = $value ? $value : $this->cover_img; return $this->imageUrl($value); } public function getOnSaleTextAttribute($value) { $value = $value ? $value : $this->on_sale; return isset(self::$_ONSALE[$value]) ? self::$_ONSALE[$value] : ''; } public function getIsInfiniteTextAttribute($value) { $value = $value ? $value : $this->is_infinite; return isset(self::$_ISINFINITE[$value]) ? self::$_ISINFINITE[$value] : ''; } public function ImageBanners(){ return $this->hasMany('\App\Models\v3\GoodsBanners','goods_id','id')->where('type',1); } public function VideoBanners(){ return $this->hasMany('\App\Models\v3\GoodsBanners','goods_id','id')->where('type',2); } /** * 处理旧图片 * @param $value * @return string */ public function imageUrl($value) { if(strripos($value,"http") === false){ return config('filesystems.disks.oss.img_host').'/'.$value; }else{ return $value; } } /** * add:2022-04-11,获取产品毛重,主要用于计算顺丰运费 */ public function getWeightAttribute($value): int { if (empty($value) && !empty($this->attributes['goods_unit'])) { $goods_unit = $this->attributes['goods_unit']; switch (true) { case preg_match('/(\d{2,})\D*±(\d{2,})/', $goods_unit, $matches): array_shift($matches); $value = (int)max($matches); break; case preg_match_all('/(\d{2,})[g|克]/', $goods_unit, $matches): $value = (int)max($matches[1]); break; default: $value = 0; } } return $value ?: 0; } }