Pour supprimer un enregistrement, il est possible mais non obligatoire de créer une vue qui affiche les détails de l'enregistrement. Voici deux approches qu'on retrouve souvent :
Ce qu'il y a de commun entre ces deux approches, c'est qu'on passe par un bouton de suppression (et non un lien) et que l'application demande une confirmation avant de procéder à la suppression (l'utilisation d'AJAX est intéressante à ce niveau).
Dans un cadre d'application MVC, tout part des routes. Il est donc naturel de commencer par créer la route qui permettra à l'application de supprimer l'enregistrement.
Ex :
Route::delete('produits/{id}', [
'as' => 'produits.destroy',
'uses' => 'ProduitsController@destroy',
]);
La suppression d'un enregistrement est une opération critique dans n'importe quelle application. Elle est généralement irréversible et les impacts d'une suppression effectuée par un pirate peuvent être graves.
C'est pourquoi Laravel met en place un mécanisme anti CSRF, tout comme il le fait lors de l'enregistrement d'un enregistrement.
Pour que la suppression puisse avoir lieu, on placera donc le bouton de suppression dans un formulaire avec protection anti CSRF. On indiquera également que l'appel utilise le verbe DELETE puisqu'on a défini la route avec ce verbe.
Ex :
<form class="supprimer" method="POST" action="{{ route('produits.destroy', [ $produit->id ]) }}">
@csrf
@method('DELETE')
...
</form>
▼Publicité