belongsToMany(GoodsCategory::class,CouponCategory::class,'goods_category_id','coupon_id'); } public function couponWithGoods() { return $this->belongsToMany(Goods::class,CouponGoods::class,'goods_id','coupon_id'); } public function couponCategory() { return $this->hasMany(CouponCategory::class, 'coupon_id', 'goods_category_id'); } public function getDiscountRatioTextAttr($value,$data) { return !empty($data['discount_ratio'])?$data['discount_ratio']*10:''; } public function couponCategoryOne() { return $this->hasOne(CouponCategory::class, 'coupon_id', 'id'); } public function getLabelsAttr($value) { return $value?array_map(function($item){ return (int)$item; },explode(',',$value)):[]; } }