Przekazywanie $ id z href do kontrolera w celu usunięcia wiersza laravel 8 [duplicate]
Nov 23 2020
Próbuję przekazać identyfikator do funkcji w moim kontrolerze, aby usunąć wiersz, ale pojawia się kod błędu:
Za mało argumentów do przekazania funkcji 0 i potrzebny dokładnie 1
Oto mój kod HTML:
<a href="{{ route('undo', $id) }}">Undo</a>
to jest moja trasa:
Route::get('/admin', [ProductController::class, 'deleteProduct']) -> name('undo');
a to jest mój kod kontrolera:
function deleteProduct($id) {
DB::table('products') -> where('id', '=', $id) -> delete();
return view('auth.admin');
}
Odpowiedzi
2 MaartenVeerman Nov 23 2020 at 04:30
Nie zdefiniowałeś id
w swojej trasie:
Route::get('/admin/{id}', [ProductController::class, 'deleteProduct']) -> name('undo');
W ten sposób route
połączenie będzie wiedziało, gdzie umieścić plik id
i wyśle go do funkcji.
Innym sposobem jest pozostawienie trasy taką, jaką masz, ale usunięcie $id
definicji funkcji kontrolera i dodanie, Request $request
aby obiekt laravel stał się obiektem żądania. Następnie wewnątrz funkcji uzyskaj dostęp $id
z obiektu żądania:
$id = $request->input('id');