query('action','in'); if(!in_array($action, ['in','out'])) { abort(400, '잘못된 action 값 입니다.'); } $title = ($action == 'in') ? '입고 등록' : '출고 등록'; // Product 조회 ( or 404) $product = Product::findOrFail($id); // Blade 뷰에 Product 전달 return view('stock.input', compact('product', 'title', 'action')); } public function store(Request $request, $id, StockService $stock) { $action = $request->query('action', 'in'); if(!in_array($action, ['in','out'])) { abort(400, '잘못된 action 값 입니다.'); } $product = Product::findOrFail($id); $validated = $request->validate([ 'amount' => ['required', 'integer'] ]); // StockLog::create([ // 'product_id' => $product->id, // 'change_type' => $action, // 'change_amount' => $validated['amount'] // ]); $stock->adjust($product, $action, (int) $validated['amount']); return redirect()->route('product')->with('success', $action == 'in' ? '입고처리 완료' : '출고처리 완료'); } }