get product names

This commit is contained in:
Edward Yang 2022-07-18 16:56:19 +08:00
parent 75c85b7832
commit 532b286b8c
3 changed files with 42 additions and 1 deletions

View File

@ -99,4 +99,19 @@ class ProductController extends Controller
return json_success('获取成功', $name);
}
/**
* 根据产品ID批量获取产品名称
*
* @param Request $request
* @return array
*/
public function getNames(Request $request): array
{
$productIds = explode(',',$request->get('product_ids'));
$name = ProductRepo::getNames($productIds);
return json_success('获取成功', $name);
}
}

View File

@ -41,6 +41,7 @@ Route::prefix($adminName)
Route::put('products/restore', [Controllers\ProductController::class, 'restore']);
Route::get('categories/{id}/name', [Controllers\CategoryController::class, 'name'])->name('categories.name');
Route::get('products/{id}/name', [Controllers\ProductController::class, 'name'])->name('products.name');
Route::get('products/names', [Controllers\ProductController::class, 'getNames'])->name('products.names');
Route::resource('products', Controllers\ProductController::class);
Route::resource('currencies', Controllers\CurrencyController::class);

View File

@ -46,7 +46,7 @@ class ProductRepo
}
public static function getBuilder($data = []) :Builder
public static function getBuilder($data = []): Builder
{
$builder = Product::query()->with('description', 'skus', 'master_sku');
@ -124,4 +124,29 @@ class ProductRepo
}
return '';
}
/**
* @param $productIds
* @return array
*/
public static function getNames($productIds): array
{
if (empty($productIds)) {
return [];
}
$products = Product::query()
->with(['description'])
->whereIn('id', $productIds)
->get();
$items = [];
foreach ($products as $product) {
$items[] = [
'id' => $product->id,
'name' => $product->description->name ?? ''
];
}
return $items;
}
}