행 삭제를 위해 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');