From 71e1e7c0ee0f311d9b4719275f027feb145078f8 Mon Sep 17 00:00:00 2001 From: panliang <1163816051@qq.com> Date: Wed, 15 Jun 2022 09:42:20 +0800 Subject: [PATCH] production spu --- app/Models/ProductPart.php | 5 +- app/Models/ProductPartSpu.php | 47 +++++++++++++++++++ ...5_093902_create_product_part_spu_table.php | 36 ++++++++++++++ 3 files changed, 84 insertions(+), 4 deletions(-) create mode 100644 app/Models/ProductPartSpu.php create mode 100644 database/migrations/2022_06_15_093902_create_product_part_spu_table.php diff --git a/app/Models/ProductPart.php b/app/Models/ProductPart.php index 3695bf34..c10113f4 100644 --- a/app/Models/ProductPart.php +++ b/app/Models/ProductPart.php @@ -45,9 +45,6 @@ class ProductPart extends Model 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(); @@ -55,7 +52,7 @@ class ProductPart extends Model public function spus() { - return $this->belongsToMany(ProductSpu::class, ProductPartSku::class, 'part_id', 'sku_id')->withTimestamps(); + return $this->belongsToMany(ProductSpu::class, ProductPartSpu::class, 'part_id', 'spu_id')->withTimestamps(); } /** diff --git a/app/Models/ProductPartSpu.php b/app/Models/ProductPartSpu.php new file mode 100644 index 00000000..8eb28a21 --- /dev/null +++ b/app/Models/ProductPartSpu.php @@ -0,0 +1,47 @@ + 0, + ]; + + /** + * @var array + */ + protected $fillable = [ + 'part_id', + 'sku_id', + 'sort', + ]; + + public function spu() + { + return $this->belongsTo(ProductSpu::class, 'sku_id'); + } + + /** + * 此分区商品所属的分区 + */ + public function part() + { + return $this->belongsTo(ProductPart::class, 'part_id'); + } +} diff --git a/database/migrations/2022_06_15_093902_create_product_part_spu_table.php b/database/migrations/2022_06_15_093902_create_product_part_spu_table.php new file mode 100644 index 00000000..a19a3934 --- /dev/null +++ b/database/migrations/2022_06_15_093902_create_product_part_spu_table.php @@ -0,0 +1,36 @@ +id(); + $table->foreignId('part_id')->constrained('product_parts')->onDelete('cascade')->comment('分区 ID'); + $table->foreignId('spu_id')->constrained('product_spus')->onDelete('cascade')->comment('商品 ID'); + $table->integer('sort')->default(0)->comment('排序'); + $table->timestamps(); + + $table->unique(['part_id', 'spu_id']); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('product_part_spu'); + } +}