# Supprimer un enregistrement

Pour supprimer un enregistrement dans la base de données grâce à un formulaire.

# Ajouter un bouton au formulaire

Par exemple, un bouton 'supprimer cette voiture', nous allons d'abord ajouter ce bouton à un formulaire

<form action="/voitures/{{ $voiture->id }}" method="POST">
  @csrf @method('DELETE')
  <button>Complete Order</button>
</form>

On va utiliser la méthode POST mais nous dirons à Laravel que c'est en réalité la méthode DELETE @method('DELETE').

@csrf servira à empêcher l'exploitation de failles de sécurité de type CSRF.

# Ajouter la route

On ajoutera la route avec une méthode 'delete' et l'action sera 'destroy' par convention.

Route::delete('/voitures/{id}', [VoitureController::class, 'destroy']);

# Ajouter la méthode destroy dans le contrôleur

Nous ajouterons la méthode destroy dans notre contrôleur VoitureController :

class VoitureController extends Controller
{
  public function destroy($id)
  {
    $voiture = Voiture::findOrFail($id);
    $voiture->delete();

    return redirect('/voitures');
  }
}

Cette méthode va d'abord vérifier si l'id de la voiture existe. Si oui, il supprimera cet enregistrement de la base de données.

Cela redirigera ensuite l'utilisateur vers la page /voitures.

# Liens utiles

Documentation de Laravel - DB Delete (opens new window)

# Retour au sommaire

<- Retour au sommaire (opens new window)