Tstore/app/Http/Controllers/Api/CategoryController.php

38 lines
959 B
PHP

<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Models\Category;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class CategoryController extends Controller
{
public function index(Request $request): JsonResponse
{
$query = Category::query()->orderByDesc('sort_order')->orderBy('id');
if ($type = $request->query('type')) {
$query->where('type', $type);
}
$categories = $query->get()->map(function ($item) {
return [
'slug' => $item->slug,
'name' => $item->name,
'type' => $item->type,
'package_count' => $item->packages()->count(),
];
})->values()->all();
return response()->json([
'code' => 0,
'message' => 'ok',
'data' => [
'categories' => $categories,
],
]);
}
}