获取分页数列表

This commit is contained in:
Edward Yang 2023-01-11 17:30:23 +08:00
parent 421c73fe7e
commit 79f6f77e2d
2 changed files with 22 additions and 6 deletions

View File

@ -67,6 +67,21 @@ class CategoryRepo
return DB::select($sql); return DB::select($sql);
} }
/**
* 生成每页产品数列表, 客户可以自己选择如何分页
*
* @return array
*/
public static function getPerPages(): array
{
$perPages = [];
$configPerPage = system_setting('base.product_per_page', 20);
for ($index = 1; $index <= 5; $index++) {
$perPages[] = $configPerPage * $index;
}
return $perPages;
}
/** /**
* 获取顶级及其子分类 * 获取顶级及其子分类
*/ */
@ -150,9 +165,9 @@ class CategoryRepo
$pathName .= $path->pathCategory->description->name; $pathName .= $path->pathCategory->description->name;
} }
$results[] = [ $results[] = [
'id' => $category->id, 'id' => $category->id,
'status' => $category->active, 'status' => $category->active,
'name' => $pathName, 'name' => $pathName,
]; ];
} }
@ -167,7 +182,7 @@ class CategoryRepo
{ {
if (is_int($category)) { if (is_int($category)) {
$category = Category::query()->findOrFail($category); $category = Category::query()->findOrFail($category);
} elseif (! ($category instanceof Category)) { } elseif (!($category instanceof Category)) {
throw new \Exception('invalid category'); throw new \Exception('invalid category');
} }
$category->descriptions()->delete(); $category->descriptions()->delete();
@ -183,7 +198,7 @@ class CategoryRepo
*/ */
public static function getName($category) public static function getName($category)
{ {
$id = is_int($category) ? $category : $category->id; $id = is_int($category) ? $category : $category->id;
$categories = self::getAllCategoriesWithName(); $categories = self::getAllCategoriesWithName();
return $categories[$id]['name'] ?? ''; return $categories[$id]['name'] ?? '';
@ -199,11 +214,11 @@ class CategoryRepo
return self::$allCategoryWithName; return self::$allCategoryWithName;
} }
$items = []; $items = [];
$categories = self::getBuilder()->select('id')->get(); $categories = self::getBuilder()->select('id')->get();
foreach ($categories as $category) { foreach ($categories as $category) {
$items[$category->id] = [ $items[$category->id] = [
'id' => $category->id, 'id' => $category->id,
'name' => $category->description->name ?? '', 'name' => $category->description->name ?? '',
]; ];
} }

View File

@ -27,6 +27,7 @@ class CategoryController extends Controller
'filter_data' => ['attr' => ProductRepo::getFilterAttribute($filterData), 'price' => ProductRepo::getFilterPrice($filterData)], 'filter_data' => ['attr' => ProductRepo::getFilterAttribute($filterData), 'price' => ProductRepo::getFilterPrice($filterData)],
'products_format' => $products->jsonSerialize(), 'products_format' => $products->jsonSerialize(),
'products' => $products, 'products' => $products,
'per_pages' => CategoryRepo::getPerPages(),
]; ];
return view('category', $data); return view('category', $data);