38 lines
959 B
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,
|
|
],
|
|
]);
|
|
}
|
|
}
|