행 삭제를 위해 href에서 컨트롤러로 $ id 전달 laravel 8 [duplicate]
Nov 23 2020
행을 삭제하기 위해 컨트롤러의 함수에 ID를 전달하려고하는데 오류 코드가 나타납니다.
함수 0에 대한 인수가 너무 적고 정확히 1이 필요함
내 HTML 코드는 다음과 같습니다.
<a href="{{ route('undo', $id) }}">Undo</a>
이것은 내 경로입니다.
Route::get('/admin', [ProductController::class, 'deleteProduct']) -> name('undo');
그리고 이것은 내 컨트롤러 코드입니다.
function deleteProduct($id) {
DB::table('products') -> where('id', '=', $id) -> delete();
return view('auth.admin');
}
답변
2 MaartenVeerman Nov 23 2020 at 04:30
id
경로에서 정의하지 않았습니다 .
Route::get('/admin/{id}', [ProductController::class, 'deleteProduct']) -> name('undo');
이렇게하면 route
호출이를 어디에 넣을지 알고 id
함수로 보냅니다.
또 다른 방법은 경로를 그대로두고 $id
컨트롤러 함수 정의에서를 제거 하고 추가 Request $request
하여 laravel 객체를 요청 객체로 만드는 것입니다. 함수 내부보다 $id
요청 객체에서 액세스 합니다.
$id = $request->input('id');