feat: [bending] 절곡품 관리 MNG 화면
- 기초관리: 목록(13컬럼) + 폼(기본정보 + 케이스전용 + 절곡테이블 + 이미지) - 절곡품: 가이드레일/케이스/하단마감재 타입별 목록 + 폼 - 부품 추가(기초관리 검색 모달) + 삭제 + 수량/품명/재질 편집 - 절곡테이블 inline 편집 + 재질별 폭합 자동계산 - 작업지시서 레거시 포맷 인쇄 모달 - 원본수정 버튼 sam_item_id 직접 링크 - DB 메뉴 등록 (기초관리 + 절곡품 + 케이스 + 하단마감재)
This commit is contained in:
62
app/Http/Controllers/TenantConsoleController.php
Normal file
62
app/Http/Controllers/TenantConsoleController.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Tenants\Tenant;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Routing\Router;
|
||||
use Illuminate\View\View;
|
||||
|
||||
class TenantConsoleController extends Controller
|
||||
{
|
||||
/**
|
||||
* 테넌트 콘솔 대시보드 (새창 진입점)
|
||||
*/
|
||||
public function index(Request $request, int $tenantId): View
|
||||
{
|
||||
$tenant = $request->attributes->get('tenant_console');
|
||||
|
||||
return view('tenant-console.index', [
|
||||
'tenant' => $tenant,
|
||||
'tenantId' => $tenantId,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Catch-all: 메인 라우트의 컨트롤러를 찾아서 실행
|
||||
* /tenant-console/{tenantId}/{path} → /{path} 에 매칭되는 메인 라우트 컨트롤러 호출
|
||||
*/
|
||||
public function dispatch(Request $request, int $tenantId, string $path)
|
||||
{
|
||||
$url = '/' . ltrim($path, '/');
|
||||
$method = $request->method();
|
||||
|
||||
// 메인 라우트에서 매칭되는 라우트 찾기
|
||||
$fakeRequest = Request::create($url, $method, $request->all());
|
||||
$fakeRequest->headers->replace($request->headers->all());
|
||||
|
||||
try {
|
||||
$route = app(Router::class)->getRoutes()->match($fakeRequest);
|
||||
} catch (\Symfony\Component\HttpKernel\Exception\NotFoundHttpException $e) {
|
||||
abort(404, "라우트를 찾을 수 없습니다: {$url}");
|
||||
} catch (\Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException $e) {
|
||||
abort(405, "허용되지 않는 메서드: {$method} {$url}");
|
||||
}
|
||||
|
||||
$action = $route->getAction();
|
||||
|
||||
if (! isset($action['uses']) || ! is_string($action['uses'])) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
// 라우트 파라미터 바인딩
|
||||
$route->bind($fakeRequest);
|
||||
$params = $route->parameters();
|
||||
|
||||
// 컨트롤러 실행
|
||||
[$controllerClass, $controllerMethod] = explode('@', $action['uses']);
|
||||
$controller = app($controllerClass);
|
||||
|
||||
return app()->call([$controller, $controllerMethod], $params);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user