메뉴 관리 기능 개선

- 트리 구조 정렬 및 표시 (무제한 depth 지원)
- 접기/펼치기 기능 추가 (재귀적 처리)
- 활성/숨김 상태 토글 기능 (실시간 업데이트)
- 테넌트 필터링 (전체 선택 시 마스터 메뉴만 표시)
- UI 개선 (토글 버튼, 외부 메뉴 표시)

추가된 파일:
- MenuService: 비즈니스 로직 처리
- MenuController (API/Web): 라우트 처리
- MenuRequest: 유효성 검증
- views/menus/: 메뉴 관리 뷰

수정된 파일:
- routes/api.php, web.php: 메뉴 라우트 추가
This commit is contained in:
2025-11-24 22:02:09 +09:00
parent 43af1a5779
commit 79aebfa148
11 changed files with 1514 additions and 0 deletions

View File

@@ -0,0 +1,48 @@
<?php
namespace App\Http\Controllers;
use App\Services\MenuService;
use Illuminate\Http\Request;
use Illuminate\View\View;
class MenuController extends Controller
{
public function __construct(
private readonly MenuService $menuService
) {}
/**
* 메뉴 목록 페이지
*/
public function index(Request $request): View
{
return view('menus.index');
}
/**
* 메뉴 생성 페이지
*/
public function create(): View
{
$parentMenus = $this->menuService->getParentMenus();
return view('menus.create', compact('parentMenus'));
}
/**
* 메뉴 수정 페이지
*/
public function edit(int $id): View
{
$menu = $this->menuService->getMenuById($id);
if (!$menu) {
abort(404, '메뉴를 찾을 수 없습니다.');
}
$parentMenus = $this->menuService->getParentMenus();
return view('menus.edit', compact('menu', 'parentMenus'));
}
}