<?php namespace App\Distributor\Repositories; use App\Models\DistProductImage as Model; use Dcat\Admin\Repositories\EloquentRepository; class DistProductImage extends EloquentRepository { /** * Model. * * @var string */ protected $eloquentClass = Model::class; //格式化数据,用于多图上传 public static function formatData($productId, $images) { $existingImages = Model::where('product_id', $productId)->get(); // 用于存储结果的数组 $result = []; // 处理条件1:如果数据在 base_product_image 中有,但在 $images 上无 foreach ($existingImages as $existingImage) { if (!in_array($existingImage->image_url, $images)) { $result[] = [ 'id' => $existingImage->id, 'image_url' => $existingImage->image_url, '_remove_' => 1, ]; } } // 处理条件2:如果数据在 base_product_image 中无,但在 $images 有 $i = 1; foreach ($images as $image) { $found = $existingImages->firstWhere('image_url', $image); if (!$found) { $result[] = [ 'id' => 0, 'image_url' => $image, 'order' => $i, ]; } //更新库中排序 foreach ($existingImages as $existingImage) { if ($existingImage->image_url == $image) { $existingImage->order = $i; $existingImage->save(); } } $i++; } return $result; } }