From 7bd296b2fac7157c34e59de0d8bf02d6a1a5685b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=ED=98=81=EC=84=B1?= Date: Tue, 27 Jan 2026 15:51:16 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EC=B9=B4=ED=85=8C=EA=B3=A0=EB=A6=AC=20?= =?UTF-8?q?=EB=9D=BC=EC=9A=B0=ED=8A=B8=20=EC=88=9C=EC=84=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95=20(/tree=20=E2=86=92=20/{id}=20=EC=95=9E=EC=9C=BC?= =?UTF-8?q?=EB=A1=9C=20=EC=9D=B4=EB=8F=99)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - /tree, /reorder 라우트를 /{id} 와일드카드 라우트보다 먼저 정의 - 500 에러 해결: "tree"가 id 파라미터로 잘못 매칭되던 문제 Co-Authored-By: Claude --- routes/api.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/routes/api.php b/routes/api.php index 6c9fb58..2b2cfd7 100644 --- a/routes/api.php +++ b/routes/api.php @@ -951,16 +951,16 @@ // Category API (통합) Route::prefix('categories')->group(function () { + // === 확장 기능 (와일드카드 라우트보다 먼저 정의) === + Route::get('/tree', [CategoryController::class, 'tree'])->name('v1.categories.tree'); // 트리 + Route::post('/reorder', [CategoryController::class, 'reorder'])->name('v1.categories.reorder'); // 정렬 일괄 + // === 기본 Category CRUD === Route::get('', [CategoryController::class, 'index'])->name('v1.categories.index'); // 목록(페이징) Route::post('', [CategoryController::class, 'store'])->name('v1.categories.store'); // 생성 Route::get('/{id}', [CategoryController::class, 'show'])->name('v1.categories.show'); // 단건 Route::patch('/{id}', [CategoryController::class, 'update'])->name('v1.categories.update'); // 수정 Route::delete('/{id}', [CategoryController::class, 'destroy'])->name('v1.categories.destroy'); // 삭제(soft) - - // === 확장 기능 === - Route::get('/tree', [CategoryController::class, 'tree'])->name('v1.categories.tree'); // 트리 - Route::post('/reorder', [CategoryController::class, 'reorder'])->name('v1.categories.reorder'); // 정렬 일괄 Route::post('/{id}/toggle', [CategoryController::class, 'toggle'])->name('v1.categories.toggle'); // 활성 토글 Route::patch('/{id}/move', [CategoryController::class, 'move'])->name('v1.categories.move'); // 부모/순서 이동