Transmission de $ id de href au contrôleur pour supprimer la ligne laravel 8 [duplicate]
Nov 23 2020
J'essaie de transmettre un identifiant à une fonction de mon contrôleur pour supprimer la ligne mais j'obtiens le code d'erreur:
Trop peu d'arguments pour la fonction 0 sont passés et exactement 1 nécessaire
Voici mon code html:
<a href="{{ route('undo', $id) }}">Undo</a>
c'est ma route:
Route::get('/admin', [ProductController::class, 'deleteProduct']) -> name('undo');
et voici mon code de contrôleur:
function deleteProduct($id) {
DB::table('products') -> where('id', '=', $id) -> delete();
return view('auth.admin');
}
Réponses
2 MaartenVeerman Nov 23 2020 at 04:30
Vous n'avez pas défini le id
dans votre itinéraire:
Route::get('/admin/{id}', [ProductController::class, 'deleteProduct']) -> name('undo');
De cette façon, l' route
appel saura où placer id
et l'envoyer à la fonction.
Une autre façon est de laisser la route telle que vous l'avez, mais supprimez la $id
définition de la fonction de votre contrôleur et ajoutez Request $request
pour faire de l'objet laravel l'objet de requête. Ensuite, à l'intérieur de la fonction, accédez $id
à l'objet de requête:
$id = $request->input('id');