73 lines
1.4 KiB
PHP
73 lines
1.4 KiB
PHP
<?php
|
|
|
|
namespace App\Models;
|
|
|
|
use Dcat\Admin\Traits\HasDateTimeFormatter;
|
|
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
|
use Illuminate\Database\Eloquent\Model;
|
|
|
|
class ProductPart extends Model
|
|
{
|
|
use Concerns\HasShowable;
|
|
use HasFactory;
|
|
use HasDateTimeFormatter;
|
|
|
|
/**
|
|
* @var array
|
|
*/
|
|
protected $attributes = [
|
|
'is_show' => false,
|
|
];
|
|
|
|
/**
|
|
* @var array
|
|
*/
|
|
protected $fillable = [
|
|
'key',
|
|
'name',
|
|
'is_show',
|
|
];
|
|
|
|
/**
|
|
* @var array
|
|
*/
|
|
protected $casts = [
|
|
'is_show' => 'bool',
|
|
];
|
|
|
|
/**
|
|
* 属于此分区的商品关系
|
|
*
|
|
* @return void
|
|
*/
|
|
public function partSkus()
|
|
{
|
|
return $this->hasMany(ProductPartSku::class, 'part_id')->orderBy('sort', 'desc');
|
|
}
|
|
|
|
/**
|
|
* 属于此分区的商品
|
|
*/
|
|
public function skus()
|
|
{
|
|
return $this->belongsToMany(ProductSku::class, ProductPartSku::class, 'part_id', 'sku_id')->withTimestamps();
|
|
}
|
|
|
|
/**
|
|
* 此分区购买赠送的券关系
|
|
*/
|
|
public function coupons()
|
|
{
|
|
return $this->hasMany(ProductPartCoupon::class, 'part_id');
|
|
}
|
|
|
|
/**
|
|
* 返回实际关联的券
|
|
* @return queryBuilder
|
|
*/
|
|
public function getCoupons()
|
|
{
|
|
return Coupon::whereIn('id', $this->coupons->pluck('coupon_id')->toArray());
|
|
}
|
|
}
|