将$id从href传递给控制器以删除行laravel 8



我试图将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');
}

您没有在路由中定义id

Route::get('/admin/{id}', [ProductController::class, 'deleteProduct']) -> name('undo');

通过这种方式,route调用将知道将id放在哪里,并将其发送给函数。

另一种方法是保留路由,但从控制器函数定义中删除$id,并添加Request $request以使laravel对象成为请求对象。然后在函数内部从请求对象访问$id

$id = $request->input('id');

最新更新